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
-
find
com-type f
e-print0
imprimirá 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. -
grep
com-z
separa as linhas pelo caractere ASCII NUL, de forma que cada nome de arquivo gerado porfind
seja tratado como uma linha separada.-F
desativa a correspondência de expressão regular e-f
lê padrões do arquivo. -
xargs
com-0
lê 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 |