Bash脚本执行时如何动态获取ffmpeg压缩包解压后的文件夹名称
动态匹配解压文件夹的实现方案
方法1:通配符直接匹配(最简实现)
直接利用Bash自带的通配符匹配固定前缀的文件夹,无需额外逻辑,修改后的完整脚本如下:
#!/bin/bash # 下载ffmpeg静态编译包 wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-i686-static.tar.xz # 解压压缩包 tar xvf ffmpeg-git-i686-static.tar.xz # 通配符*匹配中间的可变日期字段,直接进入对应文件夹 cd ffmpeg-git-*-i686-static/ # 复制二进制文件到目标路径 cp ffmpeg /etc/bin
通配符*可以匹配任意长度的任意字符,只要下载的压缩包命名规则不变,就能自动匹配到带日期的文件夹名称,和你手动输入cd ./ffmpeg按补全的效果完全一致。
方法2:文件夹名存入变量复用
如果后续脚本还有多处需要用到这个文件夹路径,可以用find命令动态获取后赋值给变量:
#!/bin/bash wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-i686-static.tar.xz tar xvf ffmpeg-git-i686-static.tar.xz # 仅在当前目录查找匹配规则的文件夹,赋值给变量 FFMPEG_DIR=$(find . -maxdepth 1 -type d -name "ffmpeg-git-*-i686-static" | head -n 1) cd "${FFMPEG_DIR}" cp ffmpeg /etc/bin
注意事项
- 如果需要适配其他架构,把通配符中的
i686替换为对应架构标识即可,比如amd64设备修改为ffmpeg-git-*-amd64-static - 常规Linux环境下二进制文件推荐放置到
/usr/local/bin目录,可根据你的实际需求调整目标路径
内容的提问来源于stack exchange,提问作者Mickey D
相关产品推荐
相关产品推荐

