Dateien größer als 1 GB und älter als 6 Monate

20

Ich möchte auf dem gesamten Server Dateien finden, die größer als 1 GB und älter als 6 Monate sind. Wie schreibe ich einen Befehl dafür?

shinek
quelle

Antworten:

37

Verwendung find:

find /path -mtime +180 -size +1G

-mtimebedeutet Suche nach Änderungszeiten, die länger als 180 Tage sind (+180). Der -sizeParameter sucht nach Dateien, die größer als 1 GB sind.

Chaos
quelle
2
Beachten Sie, dass in den findImplementierungen, in denen dieses GSuffix unterstützt wird, GiB (1073741824 Byte) und nicht GB (1000000000) gemeint ist. Portabel, würden Sie verwendenfind /path -mtime +180 -size +1073741824c
Stéphane Chazelas
1
Wenn Sie vermeiden möchten, dass Fehler in der Liste der Dateien wie diesen auftreten: find: a.txt :Permission deniedIch schlage 2>/dev/nullvor, diesen Kommentar zu ergänzen
gmansour
Sie können die Ergebnisse auch xargs ls -lhSfind /path -mtime +180 -size +1G | xargs ls -lhS
weiterleiten
@ user553965 Ihr Befehl funktioniert nicht. Was ist eigentlich nach Größe zu sortieren erforderlich ist: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Hinweis für Neulinge: Durch die Umleitung von werden 2>/dev/nullnur die permission deniedFehler beseitigt, die bei der Suche von root aus unvermeidlich sind. Wenn Sie ls -lhtstattdessen rnach dem Datum der letzten Änderung sortieren und zu den lsBefehlen hinzufügen ls -lhSr, kehren Sie z. B. die Ergebnisse um (kleinste zu größte / älteste zu neueste).
25.
6

find / -size +1G -mtime +180 -type f -print

Hier ist die Erläuterung des Befehls Option für Option: Ausgehend vom Stammverzeichnis werden alle Dateien mit einer Größe von mehr als 1 GB, die vor mehr als 180 Tagen geändert wurden, vom Typ "Datei" gefunden und der Pfad gedruckt.

dr01
quelle