Wie findet man unter Linux eine Datei, deren Namen man nicht kennt, aber von der man weiß, an welchem Tag sie erstellt bzw. zuletzt bearbeitet wurde? Bei find
gibt es u.a. die Option -mtime
, aber hier muss man angeben, wie lange es her ist, dass die Datei verändert wurde. Ohne große Rechenarbeit geht es jedoch mit der Option -newer
. Hier muss man eine Datei angeben, auf die sich die Suche beziehen soll. Eine solche Datei kann man leicht mit touch erstellen.
Nehmen wir also an, wir suchen eine Datei, die am 06.09.2024 erstellt wurde. Da -newer
Dateien sucht, die neuer als die Referenz sind, wir aber nur Dateien mit diesem Datum finden wollen, brauchen wir zwei Referenzdateien:
touch -d 2024-09-06 reference1.txt
touch -d 2024-09-07 reference2.txt
Nun können wir suchen:
find . -xdev -newer reference1.txt -a -not -newer reference2.txt -ls 2>/dev/null | less
Wie man sieht, benötigen wir die zweite Referenz, um zu verhindern, dass auch Dateien gefunden werden, die nach dem 06.09.2024 geändert wurden. Die Option -xdev
verhindert, dass wir in anderen Dateisystemen suchen, z.B. eine im Suchpfad gemountete Netzwerkfestplatte.