Як можна сортувати всі файли за розміром у каталозі?


48

Як я можу відображати файли в каталозі unix, відсортованому за читабельним для людини розміром, від великого до найменшого?

я намагався

du -h | sort -V -k 1 

але це, здається, не працює.


Чи можете ви уточнити, чи очікуєте, що розміри підкаталогів відображатимуться і у висновку, а також якщо ви шукаєте розмір файлів або фактичний розмір, який вони використовують на диску?
jlliagre

Відповіді:



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

Якщо у вас є відповідна sortверсія, ви можете просто скористатися:

du -h | sort -rh

моя є

$ sort --version
sort (GNU coreutils) 8.12

4

ls -Sне була для мене опцією в ОС. Працювало наступне:
ls -l | sort -k 5nr
їм "ключем" було вказати стовпчик для сортування (отримати його, "ключ"). Вище я вказую сортування-k 5nr значень у 5-му стовпці, розмір (5) оцінюється як число (n) у порядку зменшення (n)

Довідкова сортувальна документація для отримання додаткової інформації


4

du -ha | sort -h

du : оцінка використання дискового файлу.

-h : for human
-a : all files

sort : сортування рядків тексту.

-h : for human

man du; man sortдля більш. Він працює для мене на ubuntu v15.


1

У мене це працює для мене:

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

Що (я щойно зрозумів) те саме, що:

ls -lS

0

На відміну від ls -Sцього, це буде належним чином обробляти розріджені файли:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.