Argument list too long

Quando temos muitos arquivos (Archives, Traces) em um diretório do Linux / Unix, não podemos nem tentar remove-los sem esbarrar em erros como “Argument list too long” do bash. Aí temos que utilizar o comando find, direcionando sua saída para o comando exec.
Não é nada de mais, mas deixo aqui no Blog, para eu mesmo ter estes comandos disponíveis, sempre que precisar.

Remover todos arquivos com a extensão .arc, no diretório atual.

find . -name "*.arc" -type f -exec rm {} ;

Remover todos arquivos que foram criados a mais de 180 dias, no diretório atual.

find . -ctime +180 -exec rm {} ;

Mover todos arquivos com a extensão .trc que foram criados a mais de 7 dias, do diretório atual para um diretório (já existente) chamado old.

find . -name "*.trc" -ctime +7 -exec mv {} old ;

Procurar (com grep) por uma palavra específica em arquivos com a extensão .trc, no diretório atual.

find . -name "*.trc" -type f -exec grep FECHAMENTO_MENSAL ;

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.