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?

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

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 {} \;

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 

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
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.