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:
[code=’bash’]find . -type f -delete[/code]
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.
[code=’bash’]rsync -r –delete ./pastaVazia/ ./pastaLotada[/code]
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.