Ainda uma outra dica do GNU find
Colaboração: Mário Jorge Limeira dos Santos
Data de Publicação: 13 de janeiro de 2016
Olá pessoal. Imaginem que vocês tem um diretorio chamado por exemplo album com arquivos de diferentes extensões incluindo umas músicas em ogg e você quer excluir algumas dessas músicas menos uma ou duas que são as suas favoritas. Para isso vamos utilizar a ferramenta GNU find. Vamos ao exemplo.
Usando o terminal, estando dentro do diretorio album:
~/album$ ls favorita.ogg folder.jpg letras.txt musica.ogg naopresta.ogg qualquer.ogg
Excluindo todos os arquivos .ogg menos o 'musica.ogg':
~/album$ find . ! -name musica.ogg -name \*.ogg -delete
Excluindo todos os os arquivos .ogg menos 'musica.ogg' e 'favorita.ogg':
~/album$ find . ! \( -name musica.ogg -o -name favorita.ogg \) -name \*.ogg -delete
Se tiver arquivos com extensão em letras maiúsculas é só utilizar a opção -iname em vez de -name para que o find realize a busca case insensitive.
Obviamente é possível utilizar o mesmo conceito e o comando find para diversas outras situações e contextos. É possível também encontrar outras ótimas dicas sobre o comando find aqui mesmo no dicas-l ou ainda todas as opções no manual do find:
$ man find
Mário Jorge é Analista de TI do IFCE, entusiasta e defensor da liberdade do ser humano, do software, do conhecimento e da cultura livres. https://diasporabr.com.br/i/651382b44715