* NIX
Se você estiver usando * nix e tiver encontrar disponível, isso deve ser feito:
find /the/directory/containing/files/to/delete -mtime +7 -exec rm -r {} \;
O sinalizador -mtime
é para verificar o registro de data e hora da modificação dos arquivos encontrados. Se estiver acima de 7*24h
ago,
ele executará rm /path/to/file
Na página de manual de find
-mtime n
File's data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.
WINDOWS XP & VISTA
Eu nunca trabalho nas janelas, mas fiquei curioso para ver qual comando seria o equivalente ao acima em um ambiente MS-DOS. Eu encontrei Arquivo em lote para excluir arquivos com mais de N dias aqui no stackoverflow.
O comando relevante (cópia + colado do encadeamento ligado anteriormente):
forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"
WINDOWS 7
A sintaxe mudou um pouco, portanto, o comando atualizado é
forfiles -p "C:\what\ever" -s -m *.* /D -<number of days> /C "cmd /c del @path"