Wie kann ich alle Dateien in einem Verzeichnis nach Größe sortieren?


48

Wie kann ich die Dateien in einem Unix-Verzeichnis anzeigen, sortiert nach ihrer lesbaren Größe vom größten zum kleinsten?

Ich habe es versucht

du -h | sort -V -k 1 

aber es scheint nicht zu funktionieren.


Können Sie bitte klären, ob die Größe des Unterverzeichnisses auch in der Ausgabe erscheinen soll und ob Sie nach der scheinbaren Größe der Dateien oder der tatsächlichen Größe suchen, die sie auf der Festplatte verwenden?
Juli

Antworten:



33
$ ls -lhS

-l     use a long listing format
-h     with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S     sort by file size

16

Wenn Sie die entsprechende sortVersion haben, können Sie einfach verwenden:

du -h | sort -rh

meins ist

$ sort --version
sort (GNU coreutils) 8.12

4

ls -Swar für mich keine Option für das Betriebssystem. Folgendes funktionierte:
ls -l | sort -k 5nr
Sie "key" war die Angabe der zu sortierenden Spalte (get it, the "key"). Oben spezifiziere ich die -k 5nrBedeutungssortierung in der 5. Spalte, die die Größe (5) hat, die als Zahl (n) in absteigender Reihenfolge (n) ausgewertet wird.

Referenz Art Dokumentation für weitere Informationen


4

du -ha | sort -h

du : Schätzung der Festplattennutzung.

-h : for human
-a : all files

sort : Textzeilen sortieren.

-h : for human

man du; man sortfür mehr. Es funktioniert für mich auf Ubuntu V15.


1

Ich habe das für mich arbeiten:

ls -l | sort -g -k 5 -r

Was (ich habe es gerade herausgefunden) dasselbe ist wie:

ls -lS

0

Im Gegensatz ls -Sdazu werden mit spärlichen Dateien richtig umgegangen:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
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.