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

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

Suche nach Dateizeitstempel

Unix/Linux-Dateisysteme haben drei Arten von Zeitstempeln für jede Datei. Sie lauten wie folgt:

  1. Zugriffszeit (-atime) :Der Zeitstempel des letzten Zugriffs auf die Datei.
  2. Änderungszeit (-mtime) :Der Zeitstempel der letzten Änderung der Datei.
  3. Zeit ändern (-ctime) :Der Zeitstempel, wann die Metadaten für eine Datei (z. B. Berechtigungen oder Eigentümerschaft) zuletzt geändert wurden.

Dateien suchen und löschen, die älter als 7 Tage sind

Nehmen wir ein Beispiel, bei dem wir Dateien finden und löschen, die älter als 7 Tage sind. Wir verwenden die Option „-mtime ” des Find-Befehls dafür.

1. Holen Sie sich eine Liste der Dateien mit dem Befehl find wie folgt:

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Wenn die Dateinamen mit einem bestimmten Muster beginnen, filtern Sie es wie folgt:

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. Nachdem Sie die Ausgabe überprüft und bestätigt haben, gehen Sie zum Entfernungsskript (es ist sehr WICHTIG), da es sonst zu einem unwiederbringlichen Datenverlust kommt.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

4. Wenn dies auf einem Remote-Server über einen Cron-Job erfolgen und die Dateinamen gelöschter Dateien protokolliert werden müssen, verwenden Sie den folgenden Befehl

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Schlussfolgerung

Die -mtime Parameter sucht nach Dateien basierend auf der Änderungszeit; -ctime sucht basierend auf der Änderungszeit. Die Nutzungszeit von -atime, -mtime und -ctime, gemessen in Tagen. Der Befehl find unterstützt auch Optionen, die in Minuten gemessen werden. Diese lauten wie folgt:

  1. -amin (Zugriffszeit)
  2. -mmin (Änderungszeit)
  3. -cmin (Zeit ändern)

Um beispielsweise alle Dateien zu drucken, deren Zugriffszeit älter als sieben Minuten ist, verwenden Sie den folgenden Befehl:

# find . -type f -amin +7 -print

-neuere Option

Die Option -newer gibt eine Referenzdatei mit einer Änderungszeit an, die verwendet wird, um Dateien auszuwählen, die vor der Referenzdatei geändert wurden.

Finden Sie alle Dateien, die vor kurzem geändert wurden als die Datei file.txt:

# find . -type f -newer file.txt -print


Linux
  1. So finden und sortieren Sie Dateien basierend auf Änderungsdatum und -zeit in Linux

  2. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  3. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  4. Dateien oder Ordner finden und löschen, die älter als x Tage sind

  5. Wie löschen Sie Dateien, die älter als ein bestimmtes Datum in Linux sind?

So finden und löschen Sie defekte Symlinks in Linux

So finden und löschen Sie leere Verzeichnisse in Linux

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

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

So löschen Sie Dateien, die in einer anderen Datei unter Linux aufgeführt sind

So finden Sie das Installationsdatum und die Uhrzeit des Linux-Betriebssystems