如何创建只在大于指定文件大小的文件上执行的for循环



我想将大于500MB的mp4文件拆分为小于500MB的段。

我如何创建一个for循环来迭代文件目录,运行

mp4box -splits 500000 input.mp4

在每个大于500 MB的文件上?

(循环部分不是问题。文件大小部分的测试是。(

您可以使用find进行以下操作:

find ./ -name "*.mp4" -size +500M -exec mp4box -splits 500000 {} ;

(我没有测试,但应该是那样的(

使用zsh:

for f ( *.mp4(.Lk+500000) ) mp4box -splits 500000 $f

全局限定符:(.)用于匹配普通文件,(Lk+500000)用于匹配大小大于500000 KB的文件。将(D)添加到限定符中以包括点文件。

您也许可以使用find,例如:

for file in $( find . -size +500M )
do
echo $file
done

但我不知道find是否可以与macos一起使用。

您可以使用stat来获取循环中的文件大小:

stat -c '%s' filename.txt

注意:大小以字节为单位。

最新更新