Utilizando find + exec e agilizando tarefas

Publicado por Tiago Moreira Rodrigues em 20/07/2008

[ Hits: 34.416 ]

Blog: http://tiagorodrigues.net

 


Utilizando find + exec e agilizando tarefas



Precisando automatizar algumas tarefas e com a necessidade de agilizá-las (remover, renomear, mudar permissão, entre outras) e ainda se tratando de muitos arquivos, podemos facilitar muito este trabalho utilizando apenas uma linha.

Aqui vou mostrar uma das tarefas mais simples que o find pode ajudar, ferramenta poderosa quando se sabe usar todas as suas opções. Fazendo-se buscas no Google pode-se achar muita coisa.

O problema

Remover JPGs.

Após copiar vários documentos e pastas, encontrei o problema: os arquivos jpg não poderiam estar dentro desta estrutura e haviam muitos espalhados por todos os lugares. Como já havia feito a cópia, não perderia tempo excluindo novamente os arquivos jpg.

A solução

Utilizar find + exec.

Nos sistemas Unix like, podemos encontrar muitas ferramentas que nos ajudam com pouco esforço. O grande lance é saber como usar cada uma delas.

O find é uma que nos ajuda em muitas coisas quando iniciamos nos sistemas Unix. Logo somos apresentados ao find como uma ferramenta de busca e, sempre que precisamos buscar algo, digitamos "find /caminho -name 'busca'", mas agora vamos falar do find não como uma ferramenta de busca, e sim produtividade.

Quando precisei remover todos os arquivos jpg fiz o seguinte:

$ find . -type f -name "*.jpg" -exec rm {} \;

Onde:
  • {} - arquivo encontrado;
  • \; - finaliza o comando.

Para todo arquivo jpg que encontrar, ele executará o comando rm para removê-lo.

Bom, isso resolveu meu problema, abaixo vou mostrar mais alguns comandos que podem ajudar.

Mudando as permissões somente dos diretórios:

$ find /home/* -type d -exec chmod 775 '{}' \;

Renomeando as extensões dos arquivo que estiverem em maiúsculas:

$ find . -name '.*' -prune -o -exec rename 's/\.jpg$/\.JPG/i' {} +

É isso ai, até a próxima.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalando e Configurando Servidor DHCP

Configurando o X Window System

Métodos para descobrir modelo da placa-mãe no Linux

Instalando JDK e Jboss no Fedora Core 6

Erro no Aireplay-ng : mon0 is on channel -1, but the AP uses channel X

  

Comentários
[1] Comentário enviado por Kerberus em 28/07/2008 - 13:00h

Parabens pelo post....Me ajudou mto...era o que eu estava precisando:D:D:D

[2] Comentário enviado por marcosfmo em 26/08/2015 - 22:23h

sempre muito bom utilizar esses comandos,

[3] Comentário enviado por cviniciussdias em 22/09/2016 - 17:23h

O \n seria necessário apenas se eu tivesse mais comandos seguindo este, não?

[4] Comentário enviado por fragaaaf em 08/04/2017 - 20:23h

Sempre encontro uma solução no "Viva o Linux". Obrigado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts