Suchen Sie die Dateien, die in den letzten 24 Stunden geändert wurden


263

Beispielsweise läuft auf meinem Ubuntu-Computer ein MySQL-Server. Einige Daten wurden in den letzten 24 Stunden geändert.

Welche (Linux-) Skripte können die Dateien finden, die in den letzten 24 Stunden geändert wurden?

Bitte geben Sie die Dateinamen, Dateigrößen und die geänderte Zeit an.


Antworten:


475

So finden Sie alle Dateien, die in den letzten 24 Stunden (letzter ganzer Tag) in einem bestimmten Verzeichnis und seinen Unterverzeichnissen geändert wurden:

find /directory_path -mtime -1 -ls

Sollte nach Ihren Wünschen sein

Das -Vorherige 1ist wichtig - es bedeutet, dass sich vor einem Tag oder weniger etwas geändert hat. Ein +Vorher 1würde stattdessen bedeuten, dass sich vor mindestens einem Tag etwas geändert hat, während nichts vor dem 1bedeutet hätte, dass es vor einem Tag geändert wurde, nicht mehr und nicht weniger.


17
nett! Wie wäre es mit den letzten 2 Stunden?
JackWM

114
Verwenden Sie "-mmin -120" anstelle von mtime
Xavjer

1
warum -vor dem numerischen Wert?
EsseTi

5
Das Argument für -mtime wird als Anzahl ganzer Tage im Alter der Datei interpretiert. -mtime + n bedeutet streng größer als, -mtime -n bedeutet streng kleiner als.
Xavjer

2
Für den Leser: Vergessen Sie nicht, das zu entfernen, -lswenn Sie es in einem Skript verwenden
duftend

41

Das kannst du machen mit

find . -mtime 0

Von man find:

Die Zeit seit der letzten Änderung jeder Datei wird durch 24 Stunden geteilt und der Rest wird verworfen. Das bedeutet, dass eine Datei, um mit -mtime 0 übereinzustimmen, in der Vergangenheit geändert werden muss, was weniger als 24 Stunden her ist.


25

Ein anderer, humanerer Weg:

find /<directory> -newermt "-24 hours" -ls

oder:

find /<directory> -newermt "1 day ago" -ls

oder:

find /<directory> -newermt "yesterday" -ls

11

Auf GNU-kompatiblen Systemen (dh Linux):

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

Dadurch werden Dateien und Verzeichnisse aufgelistet, die in den letzten 24 Stunden geändert wurden ( -mtime 0). Es listet sie mit der letzten geänderten Zeit in einem Format auf, das sowohl sortierbar als auch lesbar ist ( %T+), gefolgt von der Dateigröße ( %s), gefolgt vom vollständigen Dateinamen ( %p), die jeweils durch Tabulatoren ( \t) getrennt sind.

2>/dev/nullwirft alle stderr-Ausgaben weg, damit Fehlermeldungen das Wasser nicht trüben; sort -rsortiert die Ergebnisse nach den zuletzt zuerst geänderten; und | morelistet jeweils eine Ergebnisseite auf.


2
Sie könnten auch | lessanstelle von verwenden | more, nehme ich an.
Stephen G Tuggy

7

Fügen Sie für andere, die in Zukunft hier landen (einschließlich mir), die Option -name hinzu, um bestimmte Dateitypen zu finden, z. B.: find /var -name "*.php" -mtime -1 -ls


5

Dieser Befehl hat bei mir funktioniert

find . -mtime -1 -print
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.