If statement 如何从bash中排除大于500 MB的文件?
所以我的目标是用ffmpeg转换某个目录中的所有文件,而不是小于500兆字节的文件 到目前为止,我编造的是:If statement 如何从bash中排除大于500 MB的文件?,if-statement,ffmpeg,find,If Statement,Ffmpeg,Find,所以我的目标是用ffmpeg转换某个目录中的所有文件,而不是小于500兆字节的文件 到目前为止,我编造的是: #!/bin/bash mkdir converted if [[ $(find -type f -size +500000) ]]; then for i in *.mp4; do ffmpeg -n -i "$i" -f mp4 -c:a aac -c:v libx265 -preset medium -crf 23 "converted/${i%}";done fi 剧本是一种作
#!/bin/bash
mkdir converted
if [[ $(find -type f -size +500000) ]]; then
for i in *.mp4;
do ffmpeg -n -i "$i" -f mp4 -c:a aac -c:v libx265 -preset medium -crf 23 "converted/${i%}";done
fi
剧本是一种作品。ffmpeg开始运行,但它也转换小于大小+500000的MP4。我不擅长编写脚本。我刚刚开始,但我相信我知道错误在哪里。if子句告诉ffmpeg如果目录中的某些文件大于x,就开始运行,但它没有告诉ffmpeg排除这些文件,对吗?
提前谢谢 我做到了
#!/bin/bash
mkdir converted
for var in *.mp4
do
FILESIZE=$(stat -c%s "$var")
if [ "$FILESIZE" -lt 500000000 ]
then
echo "$var is smaller than 500MB";
else
ffmpeg -n -i "$var" -f mp4 -c:a aac -c:v libx265 -preset medium -crf 23 "converted/${var%}";
fi
done