Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: kurumin-emu
Por humbhenri
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Utilizando find + exec e agilizando tarefas
Linux user
Publicado por Tiago Moreira Rodrigues em 20/07/2008

Login: tiagomr, 6137 pontos | Blog: http://tiagorodrigues.net
[ Hits: 5356 ]

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
   Dica Linux recomendada Lazarus, o Delphi do Linux (Slackware)
   Dica Linux recomendada Acessando o Linux sem a senha do root
   Dica Linux recomendada Icecast2 - Instalando, configurando e transmitindo
   Dica Linux recomendada Instalação do driver Nvidia com o Envy + gerenciador de janelas Beryl
   Dica Linux recomendada Oracle PL/Web em versão Open Source com PHP e PostgreSQL

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


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.