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.