[Linux] Deletando uma pasta com muitos, muitos arquivos

As vezes nos deparamos com uma situação onde temos milhares de arquivos em uma pasta e precisamos elimina-los. Estive em uma situação como essa quando em uma loja feita em Magento a pasta var/sessions estava lotada de arquivos, onde não estava apenas prejudicando a performance da loja, mas também começou a prejudicar o funcionamento do Linux em si e impedir que novas sessões fossem abertas.

Antes de configurar uma rotina no cron para eliminar arquivos mais velhos do que certo período eu precisei limpar ela e o comando rm não estava me ajudando.

Após algumas pesquisas descobri duas formas de lidar com esse problema. Uma utilizando o comando find e outra o comando rsync.

Com o comando find é bem mais eficiente. Após entrar na pasta em questão (e tenha muita certeza disso, pois vamos lidar com comandos que em 1 segundo podem apagar seu site inteiro), execute o seguinte comando:

find . -type f -delete

A outra forma é com o comando rsync que sincroniza uma pasta com outra, então mandando sincronizar uma pasta vazia com a pasta problemática faria com que a problemática tivesse todos os seus arquivos deletados.

rsync -r --delete ./pastaVazia/ ./pastaLotada

O rsync é muito útil também para publicação de pequenos sites, certos tipos de backup e o que mais a imaginação permitir. Vale a pena conferir e brincar um pouco com ele.

Autor: Frederico de Castro

Diretor de tecnologia da Surreal Group, formado em sistemas de informação, com experiência em desenvolvimento web e desktop desde 2006, gosta de tudo relacionado à tecnologia e automação no ambiente web.

Deixe uma resposta

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