Existe um comando para excluir todos os arquivos em um diretório que não foram modificados em N dias? Preciso limpar alguns registros antigos.
16
Isso excluirá todos os arquivos com mais de 5 dias. Você também pode inserir um -name '*log'
para ser mais preciso e também pode especificar um maxdepth
no comando find.
find /some/dir -type f -mtime +5 -delete
-ls
vez de-delete
garantir que isso não exclua tudo o que eles queriam manter. Sim, falando por experiência aqui./ some/dir/
versão uma vez . :(Com
zsh
e(.m+n)
qualificadores glob :.
seleciona apenas arquivos regulares,m+n
seleciona arquivos modificados há mais de n dias;por exemplo, liste os arquivos no diretório atual que foram modificados há mais de 9 dias:
adicione
D
para incluir arquivos de ponto:ou se desejar recursar (e listar, por exemplo, apenas os arquivos que terminam com
.log
):substitua
print -rl
porrm
se você estiver feliz com o resultado; embora você precise usarzargs
se tiver muitos arquivos (para evitar a lista de argumentos muito longa ):fonte