Remoção de diretórios e arquivos vazios
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 24 de maio de 2013
Fiz hoje uma contagem de arquivos e diretórios em minha pasta de uso pessoal:
Diretórios vazios
$ find . -type d -empty | wc 1696 2006 82659
Arquivos vazios
$ find . -type f -empty | wc 1223 1334 62168 troni:[/home/queiroz]
Assustador, não? 1.696 diretórios e 1.223 arquivos vazios. A maioria destes arquivos são criados automaticamente, pelos programas que usamos normalmente. Arquivos e diretórios vazios podem ter uma função, principalmente em se tratando de arquivos do sistema operacional. No caso de arquivos do diretório home, este raramente é o caso e com raras exceções podem ser removidos.
Para remover estes arquivos, basta completar o comando find com algumas diretivas adicionais.
$ find /home/queiroz -type d -empty -delete $ find /home/queiroz -type f -empty -delete
IMPORTANTE: não se esqueça que as diretivas do comando find são avaliadas como uma expressão. Desta forma, se a diretiva -delete for colocada na frente, o comando find irá apagar tudo que encontrar a partir do ponto inicial de pesquisa. Ao testar um comando find que você queira usar mais tarde em conjunto com a diretiva -delete, especifique explicitamente também a diretiva -depth de forma a evitar surpresas desagradáveis. Como ao especificar a diretiva -delete a diretiva -depth é implícita, você não pode usar as diretivas -prune e -delete em conjunto. Então, sempre que for executar comandos que removam objetos do sistema, faça um teste antes para verificar se tudo está certo (fonte: man find)
Saiba mais
- Linux / Unix: Find and Delete All Empty Directories / Files
- find - Procurando arquivo por características
- Localização de Arquivos Grandes
- Deleção de Arquivos usando o comando Find
- Evitando as mensagens de erro geradas pelo comando find
- Comando find com negação
- Receitas de uso do comando find: esta foi a primeira dica publicada na Dicas-L, em 3 de março de 1997. A Dicas-L completou em 2013 16 anos de existência :-)
- man find