GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:Verwenden von find zum Auffinden von Dateien, die älter als <Datum> sind

Lösung 1:

Nein, Sie können eine Datums-/Zeitzeichenfolge verwenden.

Ab man find :

-neuere XY-Referenz
Vergleicht den Zeitstempel der aktuellen Datei mit Referenz. Das Referenzargument ist normalerweise der Name einer Datei (und einer ihrer Zeitstempel wird für den Vergleich verwendet), aber es kann auch ein String sein, der eine absolute Zeit beschreibt. X und Y sind Platzhalter für andere Buchstaben, und diese Buchstaben wählen aus, welcher Zeitbezug für den Vergleich verwendet wird.

          a   The access time of the file reference
          B   The birth time of the file reference
          c   The inode status change time of reference
          m   The modification time of the file reference
          t   reference is interpreted directly as a time

Beispiel:

find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls

Lösung 2:

Nicht direkt mit der Frage verbunden, könnte aber für einige interessant sein, die hierher stolpern.

finden Der Befehl unterstützt den Parameter -older nicht direkt, um Dateien zu finden, die älter als ein erforderliches Datum sind, aber Sie können die Negate-Anweisung verwenden (unter Verwendung eines akzeptierten Antwortbeispiels):

touch -t 201003160120 some_file
find . ! -newer some_file

gibt ältere Dateien zurück als das angegebene Datum.

Lösung 3:

Wenn Sie nur '-newer file' haben, können Sie diese Problemumgehung verwenden:

# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file

# find all files created after this date
find . -newer some_file

menschliche Berührung:

  -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

Angenommen, Ihr Touch hat diese Option (meiner ist Touch 5.97).

Lösung 4:

find <dir> -mtime -20

Dieser Suchbefehl findet Dateien, die in den letzten 20 Tagen geändert wurden.

  • mtime -> geändert (atime=zugegriffen, ctime=erstellt)
  • -20 -> weniger als 20 Tage alt (20 genau 20 Tage, +20 mehr als 20 Tage)

Sie können zusätzliche Einschränkungen hinzufügen wie:

find <dir> -mtime -20 -name "*.txt"

wie zuvor, findet aber nur Dateien mit der Endung '.txt'.

Lösung 5:

Nur um hinzuzufügen - Sie können sogar zwei newmt-Argumente verwenden, um in einem Zeitintervall zu suchen:

find ! -newermt "apr 01 2007" -newermt "mar 01 2007" -ls

um alle Dateien vom März 2007 zu finden.


Linux
  1. So finden Sie unter Linux Dateien, die größer oder kleiner als X sind

  2. Linux – Dateien für das aktuelle Datum in Linux abrufen?

  3. Verwenden Sie Find and Locate, um unter Linux nach Dateien zu suchen

  4. So entfernen Sie Dateien, die älter als N Tage sind, mit tmpreaper in Linux

  5. So finden und löschen Sie Dateien, die älter als ein bestimmter Zeitraum in Linux sind

So finden Sie Dateien unter Linux

Finden Sie große Dateien in Linux

So finden Sie Dateien über die Befehlszeile im Linux-Terminal

So finden und listen Sie die Dateien rekursiv nach Datum in Linux auf

So löschen Sie Dateien, die älter als die angegebenen Tage in Linux sind

Finden Sie Text in Dateien unter Linux mit grep