você está aqui: Home  → Arquivo de Mensagens

Remoção seletiva de arquivos em um diretório

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 04 de junho de 2014

Quando usamos o comando rm geralmente fornecemos os nomes dos arquivos ou então usamos algum metacaracter para limitar a seleção. Raramente fazemos o contrário, ou seja, apagar todos os arquivos com exceção de alguns deles.

Por exemplo, o comando "rm *.doc irá apagar TODOS os arquivos que tenham o sufixo ".doc".

Podemos sofisticar um pouco mais o uso do comando "rm", utilizando a tabela abaixo:

?(lista-de-argumentos) Casa com zero ou uma ocorrência do texto fornecida
*(lista-de-argumentos) Casa com zero ou mais ocorrências do texto fornecido
+(lista-de-argumentos) Casa com uma ou mais ocorrências do texto fornecido
@(lista-de-argumentos) Casa com um dos argumentos fornecidos
!(lista-de-argumentos) Casa com tudo menos o argumento fornecido

Podem ser espeficados vários argumentos entre parênteses, basta separá-los com o caractere "|" (pipe).

Exemplos:

  1. Apagar todos os arquivos do diretório local MENOS o arquivo arquivo1.doc:

      rm !(arquivo1.doc)
    

    O caractere "!" funciona como uma negação da expressão em parenteses.

  2. Apaga todos os arquivos exceto os arquivos "arquivo1.doc" e "arquivo2.doc":

      rm  !(arquivo1.doc|arquivo2.doc)
    

  3. Apaga todos os arquivos exceto aqueles terminados em ".zip":

      rm  !(*.zip)
    

    + Apaga todos os arquivos exceto os arquivos terminados em ".iso" e ".zip":

      rm  !(*.zip|*.iso)
    

Para que esta funcionalidade funcione, é preciso que o recurso extglob esteja ativo:

  $ shopt extglob
  extglob         off

Para ativar:

  $ shopt -s extglob

Por padrão, esta funcionalidade já vem ativada em grande parte das distribuições GNU/Linux.

Este recurso pode ser usado com qualquer comando:

  mv !(*.txt) /tmp

Neste exemplo, todos os arquivos que NÃO possuam o sufixo ".txt" são movidos para o diretório "/tmp/".

Referências:



Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script