Linux: como lidar com ‘too many files’ ao excluir arquivos
Quem é usário Linux e já tentou excluir um diretório com vários milhares de arquivos recebeu pela proa uma mensagem de erro dizendo ser impossível excluir todos porque há muitos arquivos abertos, ‘too many open files’ na versão em inglês, a mais comum por aí.
Isso ocorre porque o comando rm dedica um ponteiro para cada arquivo ao ser invocado, o que pode levar a extrapolar o limite configurado no sistema operacional. Para não ter que lidar com a configuração do S.O. propriamente dita, o jeito mais fácil é excluir um a um mas todos de uma vez. -Como é que é?! Na verdade é simples, vamos fazer uma busca por todos os arquivos do diretório e, para cada entrada, a exclusão. Para que isso aconteça vamos utilizar o comando find e sua opção -exec. Vamos ao exemplo.
find . -name ‘*’ -exec rm {} \;
find -> invoca o comando find, que procura arquivos
. (ponto) -> informa que devemos começar no diretório local
-name ‘*’ -> o filtro são os arquivos que contém o caracter mágico *. Na prática isso significa “todos os arquivos”.
-exec rm {} -> executa o comando rm (remove) para cada entrada encontrada
Pronto, todos os arquivos do seu diretório foram excluídos.
comentários
Deixe seu comentário





