Crie um arquivo com as extensões que você deseja remover, uma por linha (digamos, dontwant.files ):
.txt
.nfo
.torrent
.csv
Combine find com grep , xargs e rm :
find /path/to/media/directory -type f -print0 |
grep -zFf /path/to/dontwant.files |
xargs -0 rm
-
findcom-type fe-print0imprimirá os nomes de todos os arquivos que encontrar separados pelo caractere ASCII NUL - o único que é perfeitamente seguro para delimitar caminhos e nomes de arquivos. -
grepcom-zsepara as linhas pelo caractere ASCII NUL, de forma que cada nome de arquivo gerado porfindseja tratado como uma linha separada.-Fdesativa a correspondência de expressão regular e-flê padrões do arquivo. -
xargscom-0lê linhas separadas por caracteres ASCII NUL e as usa como argumentos para o comando, neste casorm.
Isso é facilmente convertido para a outra abordagem (remova todos, exceto algumas extensões). Por exemplo, com um arquivo como want.files , contendo:
.mp4
.srt
.avi
.mp3
somente o comando grep precisa ser alterado, usando -v para negar correspondências:
grep -vzFf /path/to/want.files |