Dateien Suchen nach Änderungsdatum mit Find mtime iname

4
(6)

Find mtime und atime ist der Befehl der Wahl, wenn nach Änderungsdatum von Dateien auf dem Filesystem gesucht wird. Das Command Line Tool find bietet zahlreiche Optionen wie iname, mtime und atime, die auch für die Shell-Script verarbeitung nützlich sind.

Dateien mit find iname mtime suchen

Datei Suchen nach Änderungsdatum mit find iname atime mtime

Im Filesystem besitzt jede Datei drei Zeitstempel, die geändert werden, wann bestimmte Operationen an der Datei durchgeführt werden:

  • [a] access (den Inhalt der Datei lesen) – atime
  • [b] den Status ändern (die Datei oder ihre Attribute ändern) – ctime
  • [modify] (den Inhalt der Datei ändern) – mtime

Wir können Dateien suchen, deren Zeitstempel innerhalb eines bestimmten Altersbereichs liegen, oder sie können mit anderen Zeitstempeln verglichen werden.

find datei mtime (modify)

Die -mtime gibt eine Liste der Dateien zurück, wenn auf die Datei zuletzt vor N*24 Stunden zugegriffen wurde. Um beispielsweise eine Datei des letzten Monats (N=30 Tagen) zu finden, kann die -mtime +30 verwendet werden.

  • -mtime +30 bedeutet Datei suchen, die vor 30 Tagen geändert wurde.
  • -mtime -30 bedeutet weniger als 30 Tage.
  • -mtime 30 ohne + oder – bedeutet genau 30 Tage.
find /home/user -iname "*.txt" -mtime -30 -print

Hier werden Textdateien gesucht, die in den letzten 30 Tagen zuletzt geändert wurden.

find /home/user -iname "*.txt" -mtime -30 -exec cat {} \;

Inhalte von Dateien anzeigen die zuletzt vor 30 Tagen geändert wurden:

find /home/user -iname "*.txt" -mtime -30 | wc -l

Die Gesamtzahl der TXT-Dateien zählen mit dem Befehl wc (Word Count):

find /home/user/*.gz -mtime +30 -exec rm {} \;

Gzip-Archiv Dateien die älter als 30 Tage sind löschen:

find datei atime (access)

Nach Zugriffszeit suchen, der Befehl find atime gibt die Liste aller TXT-Dateien aus, auf die in den letzten 30 Tagen zugegriffen wurde:

find /home/user -iname "*.txt" -atime -30 -type -f

Mit find iname und atime json-Dateien auflisten auf die vor genau 14 Tagen zugegriffen wurde:

find /home/user -iname "*.json" -atime 14 -type -f

Hinweis: Der Schalter -type f – sucht nur nach Dateien, ohne Verzeichnisse.

find . -type f -print0 | xargs -0 grep "some string"

Find kann Zeichenfolgen rekursiv in allen Dateien ab dem aktuellen Verzeichnis finden.

find . -type f -print0 | xargs -0 chmod 0644

Beispiel: Dateien rekursiv mit chmod ab dem aktuellen Verzeichnis ändern, jedoch nicht die Verzeichnisse.

find . -type d -print0 | xargs -0 chmod 0755

und umgekehrt, alle Verzeichnisse rekursiv mit chmod ab dem aktuellen Verzeichnis ändern, aber nicht die Dateien.

find datei daystart

Die Option -daystart wird verwendet, um die Zeit ab Beginn des aktuellen Tages statt vor 24 Stunden zu messen.

find /home/user -iname "*.CPP" -daystart -mtime 1

Finde alle gestern geänderten C++ Dateien (*.CPP).

find /var/log -iname "*.log" -daystart -mtime 1 -type f

Alle LOG-Dateien in /var/log aufzulisten, auf die gestern zugegriffen wurde.

find /home/user -iname "*.CPP" -daystart -mtime 2 -mtime -7

C++ Dateien auflisten mit find iname mtime die vor 2-7 Tagen geändert wurden:

find /home/user -newer /mnt/user

Um Dateien im Verzeichnisbaum /home/user zu finden, die neuer sind als die Datei /mnt/user, führe folgendes aus:

Der Befehl find --help gibt dabei Hilfe, und man find zeigt die ausführliche Manpage.

Fazit

Mit dem Befehlszeilentool find lässt sich nach Dateien suchen mit find iname und mtime, um in der Linux Shell Dateien nach ihrem Änderungsdatum zu finden. Das Command Line Tool bietet mit den zahlreichen Optionen viele Möglichkeiten, diese auch in der Scriptverarbeitung nützlich sind.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4 / 5. Anzahl Bewertungen: 6

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert