Como excluir arquivos no linux anteriores a 1 ano? [duplicado]

9

Possível duplicado:
Como excluo arquivos maiores que uma certa data no linux

Como excluir todos os arquivos do diretório atual e seus subdiretórios com mais de um ano?

Comunidade
fonte
11
Faça man find. Estrondo.
11
Nota para quem fecha: que outra pergunta é realmente confusa, suas respostas não são completamente fáceis de transpor.
Gilles 'SO- stop be evil'

Respostas:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
fonte
2
find /path/to/files -type f -mtime +365 -deleteseria mais fácil.
Chris S
-delete não está no meu Aix Find, então não estou acostumado a usá-lo. Ainda bem que foi implementado em outros binários de busca.
bot403
find … -exec rm -f {} +será um pouco mais rápido (e é portátil, exceto para sistemas antigos).
Gilles 'SO- stop be evil'
11
Além disso, é uma boa idéia usar o --caso de o primeiro nome de arquivo começar com a -(embora você possa garantir que isso não ocorra se o diretório passado para findnão começar com a -).
Gilles 'SO- stop be evil'
Isso é extremamente perigoso, pois você não vê o que está prestes a excluir e por que você força a exclusão com -f? Alguns arquivos estão protegidos por um motivo. É muito mais seguro armazenar os resultados da localização em um arquivo, examiná-los e executar rm no conteúdo do arquivo.
Petr
2

Se você estiver removendo muitos arquivos, normalmente é muito mais rápido que "-exec" ou canaliza para "xargs":

find . -type f -mtime +365 | perl -lne unlink
Pontus
fonte