Edite o comando find para excluir um arquivo

1

Então eu fiz este script Converta vídeos recursivamente com o handbrake .

E ele usa esse comando como uma opção

find . -name '*.mkv' -exec rm -r {} \;

Mas eu fiz este novo script, para remover fluxos de áudio recursivamente Remover fluxos de áudio de vídeos - recursivamente sem converter áudio ou vídeo com FFMPEG

Mas eu gostaria de adicionar a opção para remover todos os arquivos *.mkv , EXCETO aqueles que são *FINAL.mkv , pois é a saída que meu segundo script usa para os arquivos.

Alguém poderia ajudar bem rápido, eu não sou muito bom em codificar, eu posso apenas manipulá-lo muito bem e entendê-lo: P

    
por FreeSoftwareServers 13.08.2015 / 08:17

1 resposta

2

Para remover todos os arquivos mkv de forma recursiva, exceto FINAL.mkv , você pode fazer:

find . -type f -not -name '*FINAL.mkv' -name '*.mkv' -delete
  • Use -type f para procurar apenas arquivos

  • -name '*.mkv' nos obterá todos os arquivos .mkv

  • -not -name '*FINAL.mkv' deixará de fora todos os *FINAL.mkv arquivos

  • -delete removerá os arquivos encontrados.

Além disso, faça primeiro um teste a seco para verificar se tudo está certo:

find . -type f -not -name 'FINAL.mkv' -name '*.mkv'
    
por heemayl 13.08.2015 / 08:25