Eu gostaria de executar um trabalho cron noturno que exclua todos os arquivos em uma pasta que não foram acessados em uma semana ou mais. Qual é a maneira mais eficiente de fazer isso no bash?
Eu gostaria de executar um trabalho cron noturno que exclua todos os arquivos em uma pasta que não foram acessados em uma semana ou mais. Qual é a maneira mais eficiente de fazer isso no bash?
Respostas:
Você quer a findferramenta .
find folder -depth -type f -atime +7 -delete
(Isso excluirá todos os arquivos ( apenas arquivos regulares , sem canais, dispositivos especiais, diretórios, links simbólicos) na pasta fornecida e todos os subdiretórios (recursivamente) nos quais o último tempo de acesso for superior a 7 dias atrás.)
-type flá para garantir que ele exclua apenas arquivos, não diretórios inteiros.
Convém verificar o tmpwatchque pode ser colocado em um trabalho cron. Não há necessidade de criar o seu próprio find. No RHEL está no tmpwatchRPM.
find.
findpode filtrar com base no atime. A "correção" do atime depende da configuração (vejanoatime), no mínimo.