我写了一个简单的 bash 脚本来转换视频文件。运行时,它首先创建output
目录,然后遍历所有.mp4
文件,转换它们并将结果放入output
目录。
mkdir output && for f in *.mp4; do echo $f; \
ffmpeg -loglevel warning -i $f -vf scale=1280:-2,fps=25 output/$f; done
我想在脚本中添加一项功能:循环所有子目录(但不包括当前目录本身),创建“输出”目录并执行转换。
通过使用以下代码,我设法在所有子目录中找到满足给定标准的所有文件:
for d in */; do
for f in "$d"/*.mp4; do
echo "$d"
file="${f##*/}"
echo "$file"
done
done
该脚本打印以下内容,这是正确的。
1/
01.mp4
2/
02.mp4
然而,这就是我所能做的。
您可以使用 find 递归搜索目录。
或者带有 globstar 的 for 循环: