Listet Dateien auf, die größer als die angegebene Dateigröße sind

73

Wie kann ich dafür sorgen, dass ls (oder ein anderer Befehl) nur Dateien auflistet, die größer als eine bestimmte Dateigröße sind?

Johnny
quelle

Antworten:

127

Verwenden Sie find und sein -sizeFlag.

So finden Sie Dateien, die größer als 100 MB sind:

find . -type f -size +100M

Wenn Sie nur das aktuelle Verzeichnis möchten:

find . -maxdepth 1 -type f -size +100M
Nifle
quelle
2
Wenn Sie die Größe in Bytes übergeben müssen, verwenden find . -type f -size +4096c ( superuser.com/a/204571/111289 )
aexl
23

Wenn Sie alle Dateien über 100 MB anzeigen möchten und wissen möchten, wo sie sich befinden und welche Größe sie haben, versuchen Sie Folgendes:

find . -type f -size +100M -exec ls -lh {} \;
Ofir Zvik
quelle
1
Entspricht dem ersten Befehl von @ Nifle
kanadischen Luke
1
Ich denke, es wäre einfacher, printf-Parameter zu verwenden -printf "%p %s". Siehe: unixhelp.ed.ac.uk/CGI/man-cgi?find
Nux
@Nux: schöner tipp. -printf '%9s %p\n'funktionierte gut für mich.
Seanf
2

Verwenden Sie Folgendes:

find / -size gt 2MB

oder:

find / -size => 2000000 
Farhan Ahmed
quelle
3
Wie verbessert dies die akzeptierte Antwort?
Dave M
Obwohl wir uns für Ihre Antwort bedanken, ist es besser, wenn Sie zusätzlich zu den anderen Antworten einen Mehrwert liefern. In diesem Fall bietet Ihre Antwort keinen zusätzlichen Wert, da ein anderer Benutzer diese Lösung bereits gepostet hat. Wenn eine frühere Antwort für Sie hilfreich war, sollten Sie sie abstimmen, anstatt dieselben Informationen zu wiederholen.
Toby Speight