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 1
Por padrão,
find
recursivamente pesquisa os subdiretórios. Isso diz para não fazer isso. Com-maxdepth 1
, o comandofind
irá 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.
-
-delete
Isso 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