In einer Partition habe ich mehrere Dateien und Ordner, und ich kann alle diese Dateigrößen du
wie folgt auflisten :
du -h
Aber wie kann ich alle Dateien auflisten, die über eine bestimmte Speicherplatzgröße wie 5 MB hinausgehen?
command-line
disk-usage
rɑːdʒɑ
quelle
quelle
find /path -type f -size +5M -exec ls -lh {} \;
Antworten:
Hier ist eine einfache Lösung in bash, die die Größe von Dateien und Ordnern analysiert:
Der erste Parameter ist der zu untersuchende
Zielordner. Der zweite Parameter ist die Grenze in Kilobyte, wobei 1 KB = 1024 Byte ist.
quelle
./findLargeItems.sh ~/Music 10000
. Vergessen Sie nicht, darin Pfad- oder Backslash-Leerzeichen anzugeben:"/home/user/random folder"
oder / home / user / random \ folder. Ich denke, Sie wissen das alles, aber nur für den Fall.Das sollte alles über 20.000 in / home / stephenm auflisten
Um in Subdirektoren zurückzukehren, lassen Sie die
-maxdepth 1
Option fallen.quelle
man find
einmal durchlesen .Seien Sie vorsichtig:
du
Druckt nicht die Größe einer Datei, sondern gibt Ihnen eine Schätzung der Speicherplatznutzung.Sie können eine 10-MB-Datei erstellen, die viel weniger verbraucht:
Ein Beispiel ist eine komprimierte Datei, die weniger Speicherplatz auf der Festplatte benötigt als ihre Größe, wie im obigen Beispiel einer Datei mit geringer Dichte .
Im obigen Beispiel
find . -type f -size +5M
wird die Ausgabefile
auch dann ausgegeben , wenn siedu
viel weniger als 5 MB beträgt.Wenn Sie wissen, dass Ihre Dateinamen keine Zeilenumbrüche enthalten, können Sie die Ausgabe von filtern
find
mit:Wenn Ihre Dateinamen Zeilenumbrüche enthalten können, können Sie diese GNU-Erweiterung verwenden, aber dann etwas anderes als
echo
in der Schleife verwenden:quelle
du --apparent <file>
In diesem Fall ist die gemeldete Größe dieselbe wie mitls
.