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?
shell-script
command-line
files
find
shinek
quelle
quelle
find
Implementierungen, in denen diesesG
Suffix unterstützt wird, GiB (1073741824 Byte) und nicht GB (1000000000) gemeint ist. Portabel, würden Sie verwendenfind /path -mtime +180 -size +1073741824c
find: a.txt :Permission denied
Ich schlage2>/dev/null
vor, diesen Kommentar zu ergänzenxargs ls -lhS
find /path -mtime +180 -size +1G | xargs ls -lhS
find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS
. Hinweis für Neulinge: Durch die Umleitung von werden2>/dev/null
nur diepermission denied
Fehler beseitigt, die bei der Suche von root aus unvermeidlich sind. Wenn Siels -lht
stattdessenr
nach dem Datum der letzten Änderung sortieren und zu denls
Befehlen hinzufügenls -lhSr
, kehren Sie z. B. die Ergebnisse um (kleinste zu größte / älteste zu neueste).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.
quelle