Jak mogę posortować wszystkie pliki według rozmiaru w katalogu?

48

Jak mogę wyświetlić pliki w katalogu unix posortowanym według ich czytelnego dla człowieka rozmiaru, od największego do najmniejszego?

próbowałem

du -h | sort -V -k 1 

ale wydaje się, że to nie działa.

użytkownik46976
źródło
Czy możesz wyjaśnić, czy spodziewasz się, że rozmiary podkatalogów pojawią się również na wyjściu, a także jeśli szukasz pozornego rozmiaru plików lub rzeczywistego rozmiaru używanego na dysku?
jlliagre

Odpowiedzi:

53

ls(1) /sort:

-S     sort by file size
Cześć71
źródło
1
-Snie jest już poprawnym argumentem sortowania, przynajmniej w Ubuntu. Poniższa odpowiedź @alex zadziałała dla mnie. Link do odpowiedzi to superuser.com/a/990437/528836 .
Prasanna,
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
kev
źródło
16

Jeśli masz odpowiednią sortwersję, możesz po prostu użyć:

du -h | sort -rh

mój jest

$ sort --version
sort (GNU coreutils) 8.12
ztank1013
źródło
4

ls -Snie było dla mnie opcją w systemie operacyjnym.
ls -l | sort -k 5nr
Działały następujące: „Klucz” miał określić kolumnę do sortowania (pobierz, „klucz”). Powyżej podaję -k 5nrznaczenie sort w 5. kolumnie, która jest rozmiarem (5) obliczonym jako liczba (n) w porządku malejącym (n)

Odniesienie dokumentacja sortowania , aby uzyskać więcej informacji

Alex
źródło
4

du -ha | sort -h

du : oszacuj użycie dysku z plikami.

-h : for human
-a : all files

sort : sortuj wiersze tekstu.

-h : for human

man du; man sortpo więcej. Działa dla mnie na Ubuntu v15.

Andrew_1510
źródło
1

Mam to do pracy dla mnie:

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

Który (właśnie wymyśliłem) jest taki sam jak:

ls -lS
Aaron
źródło
0

W przeciwieństwie do ls -Stego, będzie poprawnie obsługiwać rzadkie pliki:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
jlliagre
źródło