Ho una directory con pochi TB di file. Vorrei eliminare tutti i file in esso che sono più vecchi di 14 giorni.trova file più vecchi di X giorni in bash e cancella
Ho pensato di utilizzare find . -mtime +13 -delete
. Per assicurarsi che il comando funzioni come previsto, ho eseguito find . -mtime +13 -exec /bin/ls -lh '{}' \; | grep '<today>'
. Quest'ultimo non dovrebbe restituire nulla, poiché i file che sono stati creati/modificati oggi non dovrebbero essere trovati da find
utilizzando -mtime +13
. Con mia sorpresa, tuttavia, lo find
sputa solo un elenco di tutti i file modificati/creati oggi!
Sei sicuro che tu o qualcun altro non hai modificato i file ?! –
Vedere l'opzione '-daystart' per trovare. La tua scoperta conta esattamente 24 * 13 ore all'indietro, lasciando file che potrebbero essere 24 * 13 - 1 minuto e in seguito il tuo altro ritrovamento li troverà. –
Appena capito! La ragione è "ls". 'find' trova una directory con mtime +13 e' ls' elenca semplicemente tutto il suo contenuto, indipendentemente dal tempo in cui i file hanno (facepalm!). – user3040975