Respostas:
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
"{}"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ê).?
findidentificadores escapam por si só, mas não é um mau hábito permanecer durante o script. Não dói.
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.)
{}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.