Compare e exclua arquivos de vídeo maiores em dois diretórios

0

Eu tenho convertido todos os meus vídeos caseiros para o HEVC e às vezes os arquivos ficam menores e às vezes não. Atualmente, estou comparando todos os arquivos de vídeo manualmente e leva uma eternidade.

Eu queria saber se existe um script que pode verificar as duas pastas e excluir o maior dos dois arquivos e manter o menor.

Afinal, estou fazendo isso para economizar espaço. Eu faço toda a minha conversão no Ubuntu 17.04 CLI para um script bash seria preferível, mas eu não sou um script.

    
por Josh 23.06.2017 / 01:05

1 resposta

0

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'?
    
por 29.06.2017 / 01:09