Eu usaria zsh
( sudo apt-get install zsh
, se ainda não estiver instalado):
#! /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
Isso é feito em mais de 50MiB (como nos vídeos) classificados por tamanho e se um arquivo com a mesma cauda (nome base) e nome raiz (ou seja, sem a extensão) já havia sido visto antes , isso significa que era menor, então ofereça-se para removê-lo (com -i
para que você tenha a chance de recusar).
Exemplo:
$ 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'?