我已经将所有家庭视频转换为 HEVC,有时文件最终会变小,有时则不会。我目前正在手动比较所有视频文件,这需要很长时间。
我想知道是否有一个脚本可以检查这 2 个文件夹并删除 2 个文件中较大的文件并保留较小的文件。
毕竟我这样做是为了节省空间。我在 Ubuntu 17.04 CLI 中完成所有转换,因此 bash 脚本会更好,但我不是脚本编写者。
答案1
我会使用zsh
(sudo apt-get install zsh
如果尚未安装):
#! /bin/zsh -
typeset -A files
for f in **/*.*(.LM+50oL); do
if (($+files[$f:t:r])); then
printf '"%s" was smaller than "%s"\n' $files[$f:t:r] $f
ls -lUd -- $files[$f:t:r] $f
rm -i -- $f
else
files[$f:t:r]=$f
fi
done
即遍历按大小排序的所有超过 50MiB(典型的视频)文件,如果之前已经见过具有相同尾部(基本名称)和根名称(即没有扩展名)的文件,则意味着它较小,所以提出将其移除(这样-i
你就有机会拒绝)。
例子:
$ that-script
"foo.mov" was smaller than "foo.avi"
-rw-r--r-- 1 chazelas chazelas 62914560 Jun 29 00:08 foo.mov
-rw-r--r-- 1 chazelas chazelas 73400320 Jun 29 00:08 foo.avi
rm: remove regular file 'foo.avi'?