Vamos começar com um diretório com três mp3 arquivos:
$ ls *mp3
a.mp3 b.mp3 c.mp3
Agora, vamos excluí-los depois de listarmos o que estamos excluindo:
$ find . -maxdepth 1 -name '*.mp3' -printf 'Deleting %p\n' -delete
Deleting ./a.mp3
Deleting ./b.mp3
Deleting ./c.mp3
Depois disso, os arquivos mp3 sumiram:
$ ls *mp3
ls: cannot access '*mp3': No such file or directory
Como funciona
-
'encontrar.
Isso inicia um comando
find. Ele procurará arquivos no diretório atual,.. -
-maxdepth 1Por padrão,
findrecursivamente pesquisa os subdiretórios. Isso diz para não fazer isso. Com-maxdepth 1, o comandofindirá apenas olhar para o que encontrar no diretório atual e não explorar nenhum dos subdiretórios do diretório atual. -
-name '*.mp3'Isso diz ao find para procurar apenas por arquivos com a extensão
.mp3. -
-printf 'Deleting %p\n'Isto diz ao find para imprimir uma mensagem sobre cada arquivo encontrado.
Você pode, claro, mudar isso para outra mensagem, se quiser. Se você não quiser uma mensagem, esta opção pode ser totalmente omitida.
-
-deleteIsso diz para localizar para excluir cada arquivo.
Pesquisa insensível a maiúsculas
Se você também quiser encontrar arquivos com o nome .MP3 ou .Mp3 etc., precisaremos de uma pesquisa sem distinção entre maiúsculas e minúsculas e usaremos -iname :
find . -maxdepth 1 -iname '*.mp3' -printf 'Deleting %p\n' -delete