O comando 'find' tem uma opção chamada '-atime' exatamente para esse uso. Se você quiser encontrar todos os arquivos recursivamente em um diretório, que não foram acessados por 30 dias, use:
find /directory/path/ -type f -atime +29
Acho que está sempre usando este primeiro comando para listar quais arquivos você está operando antes de excluir. Se você quiser excluí-los, use:
find /directory/path/ -type f -atime +29 -delete
Como mencionado por Amias nos comentários, nem todos os sistemas de arquivos usam o atime. Você também pode pesquisar por tempo de modificação (modificações no conteúdo do arquivo) com -mtime
ou tempo alterado (alterações nas permissões / propriedade de arquivos, etc.) com ctime
.
Vale a pena notar que a estrutura de tempo de find
é incomum, pois ele pesquisa em unidades de 24 horas por dia, então o que você pode pensar ter 3 dias, acho que é de apenas 2 dias. Daí o uso de +29 por 30 dias. O +
é usado para especificar, mais do que um número de dias, -
pode ser usado para especificar menos que.
Se você não quiser que a pesquisa seja recursiva, poderá limitar o quanto ela desce para a árvore de diretórios com -maxdepth n
, em que n é o número de diretórios a serem reduzidos.