X

Как узнать размер папки в Linux

Оценить размер папки в Linux (занимаемого места) можно с помощью стандартной консольной команды du. Давайте поглядим подробнее, как она работает.

Узнать размер папки в которой мы находимся

в килобайтах (по умолчанию)

[hc@host dir]# du -s
3543324 .

Добавив дополнительный ключ можно получить вывод:

  • в байтах -b
  • опять же, в килобайтах -k
  • в мегабайтах -m
[hc@host dir]# du -sm
3461    .

или же в с помощью ключа -B (он же в другой записи --block-size=РАЗМЕР)

[hc@host dir]# du -sB1M
3461    .
[hc@host dir]# du -s --block-size=1M
3461    .

РАЗМЕР можно задавать с помощью обозначений  K – килобайты, M – мегабайты, G – гигабайты, T – терабайты и так далее – P, E, Z, Y.

но чаще всего, что бы узнать размер папки в Linux, вы будете пользоваться ключом -h, показывающем размер в удобном для восприятия формате

[hc@host dir]# du -sh
3,4G    .

Узнаем размер произвольной папки или сразу нескольких

Просто допишем путь к папке которая нас интересует:

[hc@host dir]# du -sh  /home/backup
25G     /home/backup

Поглядим размер всех объектов в папке:

[hc@host dir]#  du -sh *
508K    conf
132K    mail
1,2M    tmp
3,4G    web

Добавим в вывод итоговый размер папки с помощью ключа :

[hc@host dir]#  du -sсh *
508K    conf
132K    mail
1,2M    tmp
3,4G    web
3,4G    итого

И то же самое для произвольного пути:

[hc@host dir]# du -sh /home/*
328K    /home/admin
161M    /home/aqua
25G     /home/backup
2,0G    /home/ice
752M    /home/tuser

Сортируем вывод по размеру папок/файлов

По умолчанию вывод сортируется по имени объектов файловой системы, что согласитесь, не всегда удобно – например, нам надо найти самую “толстую” папку в каталоге, где тысячи объектов. Представили?

В такой ситуации нам здорово поможет команда sort.

Параметр -n указывает, что нужно использовать числовую сортировку, а -r задает обратный порядок (т.е. самые большие папки будут выведены первыми):

[hc@host dir]# du -s * | sort -nr
3531200 web
1216    tmp
508     conf
132     mail

естественно, можно указать в чем считать с помощью ключей -m, -b или -B, про которые написано выше. Но удобнее передать sort вместо -n, параметр -h – который сортирует числа переведенные в удобочитаемый формат (1G, 20.3K и т.д.):

[hc@host dir]# du -sh /home/* | sort -h
328K    /home/admin
23M     /home/mvsauto
54M     /home/olymp
161M    /home/aqua
752M    /home/tuser
1,3G    /home/magma
2,0G    /home/ice
25G     /home/backup

P.S. Если вы запустили выполнение команды в месте с большим количеством файлов (например в корне файловой системы), то придется ждать весьма значительное количество времени. Прервать выполнение команды можно с помощью комбинации клавиш Ctrl+C.

P.P.S Иногда полезно вывести результат не в консоль, а в файл (например, если объектов очень много), что бы потом спокойно просмотреть его.

du -sh * | sort -hr > total.log
Categories: Ликбез
hc:

View Comments (3)

  • Вообще-то папок в ОС Линукс нет. То что вы называете папкой на самом деле является каталогом. Называйте вещи своими именами.

    • Спасибо, кэп. Только те кто знает, что правильно не папка, а каталог, обычно уже в курсе как узнать размер. Это статья не для их.

  • Точно! И запрос будет скорее всего "размер папки". Так что - спасибо за "конкретно и по существу!".
    Хотя можно было бы нормально так зафлеймить на тему каталог/папка/директория... быстро перейти к аргументу "все вокруг *** , а я Д'Артаньян" и ничего полезного по существу вопроса не сказать ;), на что вас, по-моему, и пытались развести ))