it-swarm.com.de

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

Wie kann ich die Dateien in einem Unix-Verzeichnis anzeigen lassen, das nach der für Menschen lesbaren Größe vom größten zum kleinsten sortiert ist?

Ich habe es versucht

du -h | sort -V -k 1 

aber es scheint nicht zu funktionieren.

46
user46976

ls(1)/sort:

-S     sort by file size
51
Hello71
$ 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
32
kev

Wenn Sie die entsprechende sort-Version haben, können Sie einfach Folgendes verwenden:

du -h | sort -rh

meins ist

$ sort --version
sort (GNU coreutils) 8.12
14
ztank1013

du -ha | sort -h

du: Schätzung der Festplattennutzung.

-h : for human
-a : all files

sort: Textzeilen sortieren.

-h : for human

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

4
Andrew_1510

ls -S war für mich keine Option auf dem Betriebssystem. Folgendes hat funktioniert:
ls -l | sort -k 5nr
Sie "key" war die Angabe der zu sortierenden Spalte (get it, the "key"). Oben spezifiziere ich -k 5nr mit der Bedeutung sortieren in der 5. Spalte, welche die Größe (5) ist, die als Zahl (n) in absteigender Reihenfolge (n) ausgewertet wird

Referenz Dokumentation sortieren für weitere Informationen

3
Alex

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
1
Aaron

Im Gegensatz zu ls -S werden hiermit spärliche Dateien richtig behandelt:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
0
jlliagre