我正在使用mp4box
在 MP4 文件上移动 MOOV 原子。
问题是,我将在给定文件夹中有 6 个文件,并且我不想inter 500
单独运行该命令六次。
是否可以mp4box -inter 500 *
在目录中执行类似操作,以便对该文件夹中的所有 mp4 文件运行该命令?
您可以使用 的-exec
选项find
。此处,'{}'
替换为每个 MP4 文件的文件名。这将处理各种文件名,甚至那些包含空格或换行符的文件名。您需要提供-maxdepth 1
仅搜索当前目录。
find . -iname "*.mp4" -maxdepth 1 -exec mp4box -inter 500 '{}' \;
Run Code Online (Sandbox Code Playgroud)
另一种更复杂的方法是将输出从管道输送find
到带有read
. 在这里,每个文件都是由NUL
字符分隔的,你需要告诉read
在这个字符上拆分输入,这是通过-d ''
. 您还需要引用变量"$file"
,以便保留名称中的空格或通配符。
find . -iname "*.mp4" -maxdepth 1 -print0 | while IFS= read -d '' -r file; do mp4box -inter 500 "$file"; done
Run Code Online (Sandbox Code Playgroud)