Оценить размер папки в 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
View Comments (3)
Вообще-то папок в ОС Линукс нет. То что вы называете папкой на самом деле является каталогом. Называйте вещи своими именами.
Спасибо, кэп. Только те кто знает, что правильно не папка, а каталог, обычно уже в курсе как узнать размер. Это статья не для их.
Точно! И запрос будет скорее всего "размер папки". Так что - спасибо за "конкретно и по существу!".
Хотя можно было бы нормально так зафлеймить на тему каталог/папка/директория... быстро перейти к аргументу "все вокруг *** , а я Д'Артаньян" и ничего полезного по существу вопроса не сказать ;), на что вас, по-моему, и пытались развести ))