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.


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:



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

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

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


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.


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

0

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

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.