Isto irá apagar todos os arquivos com mais de 5 dias, você pode colocar um -name '*log'
lá também para ser mais preciso e você pode querer especificar um maxdepth
no comando find também.
find /some/dir -type f -mtime +5 -delete
Existe um comando para excluir todos os arquivos em um diretório que não tenha sido modificado em N dias? Eu preciso limpar alguns logs antigos.
Com zsh
e (.m+n)
qualificadores da glob : .
seleciona somente arquivos regulares, m+n
seleciona arquivos modificados há mais de n dias;
por exemplo. listar os arquivos no diretório atual que foram modificados há mais de 9 dias:
print -rl -- *(.m+9)
adicione D
para incluir arquivos de ponto:
print -rl -- *(D.m+9)
ou se você quiser reciclar (e listar, por exemplo, apenas arquivos que terminem com .log
):
setopt extendedglob
print -rl -- **/*.log(.m+9)
substitua print -rl
por rm
se você estiver satisfeito com o resultado; embora você possa ter que usar zargs
se você tiver muitos arquivos (para evitar a lista de argumentos por muito tempo ):
autoload zargs
zargs ./**/*(.m+9) -- rm