как использовать du, чтобы увидеть файлы больше порогового размера

9

У меня есть несколько ситуаций, в которых я не вижу ничего на страницах руководства.

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)

Mtl Dev
источник
2
Жаль, --thresholdчто не работает на OS X.
Франклин Ю.
Также не работает над RHEL 6.2
Мэтью Мойзен
Также в Ubuntu написано, что sort -hnhn несовместимы.
Скотт Стаффорд
1
@ScottStafford Спасибо за это, опечатка, исправлено. Должен был прочитать толькоsort -h
Mtl Dev
как показать файлы размером более 500 КБ? (вместо папок)
Александр Миллс
12

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

find -size +10M

Вы можете использовать du с find, чтобы увидеть размер каждого файла:

find -size +10M -exec du -sh {} \;
Carson
источник
0

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

Непонятно, хотите ли вы видеть размер отдельных файлов, которые превышают какое-то значение, или же вы хотите видеть папки, размер которых превышает некоторое значение.

SabreWolfy
источник
обе вещи. В основном я должен сделать отчет, и в этом я должен представлять его двумя способами, на которые вы указали.
Бонд
Я думаю, что gt5, упомянутый выше, может быть тем, что вы ищете.
SabreWolfy
0

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

Хотя Бонд сказал, что

Я не вижу ничего на страницах руководства.

на странице руководства есть две строки, пожалуйста, обратитесь ниже.

-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
Дэвид Юнг
источник