2015-10-12 7 views
10

Ich benutzte den folgenden Befehl, um Dateien zu löschen, die älter als ein Jahr sind.Lösche Dateien älter als spezifisches Datum in Linux

find /path/* -mtime +365 -exec rm -rf {} \; 

Aber jetzt will ich alle Dateien löschen, deren geänderte Zeit ist älter die unter 01 Jan 2014

Wie kann ich es in Linux zu tun.

Antwort

13

Sie können Ihre Zeitstempel als Datei und verwenden, die als Bezugspunkt berühren:

z.B. für 01-Jan-2014:

touch -t 201401010000 /tmp/2014-Jan-01-0000 

find /path -type f ! -newer /tmp/2014-Jan-01-0000 | xargs rm -rf 

dies funktioniert, weil find einen -newer Schalter hat, die wir verwenden.

Von man find:

-newer file 
     File was modified more recently than file. If file is a symbolic 
     link and the -H option or the -L option is in effect, the modification time of the 
     file it points to is always used. 
+2

Danke. ! ist so gut wie -nicht "finden. -nicht -newer/tmp/2014-Jan-01-0000" – VRK

+0

@VRK yep! das ist auch sauberer –

5

Dies funktioniert für mich:

find /path ! -newermt "YYYY-MM-DD HH:MM:SS" | xargs rm -rf 
Verwandte Themen