Excluir arquivos com mais de um ano no Linux

18

Até o momento, muitos arquivos ainda estão no meu sistema e eu não preciso mais deles, então como excluir todos os arquivos com pelo menos um ano de idade?

Maythux
fonte

Respostas:

34

Você pode fazer isso com este comando

find /path/to/files* -mtime +365 -exec rm {} \;

Alguns explicam

/path/to/files* é o caminho para os arquivos.

-mtimeé usado para especificar o número de dias que o arquivo está. +365 encontrará arquivos com mais de 365 dias, ou seja, um ano

-exec permite passar um comando como rm.


Editar Graças à nota @Oli -> você pode fazer isso:

find /path/to/files* -mtime +365 -delete
Maythux
fonte
7
Você deve sempre citar o {}in -exec(assim ele lê -exec rm "{}" \;). Isso garante que os espaços sejam manipulados corretamente ... E você pode simplesmente usar a -deletefunção em vez de -exec.
Oli
1
@Oli Huh ??? (O que você disse não pode estar certo, considerando que o shell se "{}"transforma {}antes de passá-lo para findo primeiro lugar; depois o findsubstitui. A citação {}é sugerida no caso {e }eles próprios às vezes podem ser tratados especialmente pelo shell - o que não tem nada a ver. fazer com espaços em branco.E frequentemente {}não precisa ser citado.Não consigo pensar em nenhuma situação, pelo menos ao invocar find de um shell no estilo Bourne, quando {}, sem nada dentro, aparecendo por si só como argumento, seria têm de ser citado pode você).?
Elias Kagan
1
@EliahKagan Sim, acontece que os findidentificadores escapam por si só, mas não é um mau hábito permanecer durante o script. Não dói.
Oli
2
@ Oli Mas isso não ajuda, mesmo em princípio. Se findnão lidasse com a fuga, "{}"ainda teria o mesmo efeito que - {}apenas nenhum funcionaria, em vez de ambos funcionarem. Isso {}e "{}"se comportar da mesma forma não é - e não pode ser - devido a qualquer recurso especial do find. Confundir o que é expandido pelo shell com o que é expandido por outro programa é um mau hábito. Todos nós cometemos esse erro ocasionalmente, mas ainda é um erro - não é uma prática recomendada. (Um ainda pode citar {}para ajudar os seres humanos ver que não é um padrão para a expansão cinta, mas isso é não relacionado à repartição de palavras.)
Elias Kagan