як використовувати du, щоб бачити файли, що перевищують поріг


9

У мене є кілька ситуацій, до яких я не бачу нічого на сторінках du man.

1) Я хочу бачити в підкаталозі файли, які мають більший розмір, ніж певний розмір. 2) Я використовую du -sh> du_output.txt Я бачу вихід, як описано для параметра -s і -h, як завжди, що мене більше цікавить, якщо вихід надходить у форматі, наприклад, наприклад

 dir0--->dir1-->dir3-->dir4 
       |             | 
       ->dir2        |-file1
                     |-file2

якщо вище - це макет каталогів, і я хочу просто побачити розмір окремих каталогів у всіх підкаталогах, то що я можу зробити (глибина кожного підкаталогу є змінною)

Відповіді:


5

Мені подобається утиліта gt5 . Він використовує вихід duі створює список доступних для перегляду каталогів та їх розміри та використовує браузер у текстовому режимі, наприклад посилання для відображення інформації.

Обидві програми доступні у сховищах Ubuntu: gt5 та посиланнях .

Скріншот gt5


Дякую, gt5 виглядає дуже цікаво. Я зараз його встановлю. Звичайно, є також "баобаб" для GUI.
SabreWolfy

22

Щоб показати лише папки розміром понад 1 Гб:

du -h --threshold=1G

Ви також можете замовити за розміром, щоб легко знайти найбільші.
du -h --threshold=1G | sort -h

(Працює на: Ubuntu / Mint.
Не працює на: OSX або RHEL 6.2)


2
Шкода, --thresholdщо не працює на ОС X.
Франклін Ю.

Також не працює над RHEL 6.2
Меттью Мойсен

Також на Ubuntu написано, що sort -hnhn несумісні.
Скотт Стаффорд

1
@ScottStafford Дякую за це, друкарська помилка. Треба було просто прочитатиsort -h
Mtl Dev

як показати файли понад 500 КБ? (замість папок)
Олександр Міллс

12

Використовуйте команду find замість цього. Наступний приклад покаже вам всі файли, що перевищують 10 мегабайт:

find -size +10M

Ви можете використовувати du з таким чином, щоб побачити розмір кожного файлу:

find -size +10M -exec du -sh {} \;

0

find /path/to/folder -size +100k

Незрозуміло, чи хочете ви бачити розмір окремих файлів, які перевищують якесь значення, чи потрібно бачити папки, які перевищують якесь значення.


обидві речі. В основному я повинен скласти звіт, і я маю представити його двома способами, які ви вказали.
Бонд

Я думаю, що вищевказаний gt5 може бути тим, що ви шукаєте.
SabreWolfy

0

Я бачу відповідь Mtl Dev придатною до цього питання. Оскільки Бонд відкрив цю тему з тегами 'linux' та 'ubuntu-10.04'.
Знову ж таки, du -h --threshold=1G(далі - | sort -hнеобов'язково) відмінно працює в Ubuntu.

Хоча, Бонд сказав,

Я не бачу нічого на сторінках du man.

на сторінці вкладки є два рядки, будь ласка, зверніться нижче.

-t, --threshold = SIZE
виключити записи, менші ніж SIZE, якщо позитивні, або записи, що перевищують SIZE, якщо негативні

І ще одна річ, я думаю, що точний командний рядок, яким потрібен Бонд, є щось подібне,

find . -mindepth 2 -type d | xargs du -sh -t 1G

Коли -mindepth 1заявки, що він повинен містити поточний шлях, -mindepth 2працюватимуть за вашим запитом.

Нижче показана демонстрація популярної лізи даних .

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G | sort -h
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations
4.0G    ./negatives/negativePics
6.0G    ./experiments/training

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G
4.0G    ./negatives/negativePics
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
6.0G    ./experiments/training
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 3G
4.0G    ./negatives/negativePics
6.0G    ./experiments/training
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.