Как узнать размер папки в Linux
Оценить размер папки в Linux (занимаемого места) можно с помощью стандартной консольной команды du. Давайте поглядим подробнее, как она работает.
Узнать размер папки в которой мы находимся
в килобайтах (по умолчанию)
1 2 | [hc@host dir]# du -s 3543324. |
Добавив дополнительный ключ можно получить вывод:
- в байтах
-b
- опять же, в килобайтах
-k
- в мегабайтах
-m
1 2 | [hc@host dir]# du -sm 3461 . |
или же в с помощью ключа
-B
(он же в другой записи
--block-size=РАЗМЕР
)
1 2 3 4 | [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
, показывающем размер в удобном для восприятия формате
1 2 | [hc@host dir]# du -sh 3,4G . |
Узнаем размер произвольной папки или сразу нескольких
Просто допишем путь к папке которая нас интересует:
1 2 | [hc@host dir]# du -sh /home/backup 25G /home/backup |
Поглядим размер всех объектов в папке:
1 2 3 4 5 | [hc@host dir]# du -sh * 508K conf 132K mail 1,2M tmp 3,4G web |
Добавим в вывод итоговый размер папки с помощью ключа
-с
:
1 2 3 4 5 6 | [hc@host dir]# du -sсh * 508K conf 132K mail 1,2M tmp 3,4G web 3,4G итого |
И то же самое для произвольного пути:
1 2 3 4 5 6 | [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
задает обратный порядок (т.е. самые большие папки будут выведены первыми):
1 2 3 4 5 | [hc@host dir]# du -s * | sort -nr 3531200web 1216 tmp 508 conf 132 mail |
естественно, можно указать в чем считать с помощью ключей
-m
,
-b
или
-B
, про которые написано выше. Но удобнее передать
sort
вместо
-n
, параметр
-h
– который сортирует числа переведенные в удобочитаемый формат (1G, 20.3K и т.д.):
1 2 3 4 5 6 7 8 9 | [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 Иногда полезно вывести результат не в консоль, а в файл (например, если объектов очень много), что бы потом спокойно просмотреть его.
1 | du-sh *|sort-hr>total.log |
11:31
Вообще-то папок в ОС Линукс нет. То что вы называете папкой на самом деле является каталогом. Называйте вещи своими именами.
12:49
Спасибо, кэп. Только те кто знает, что правильно не папка, а каталог, обычно уже в курсе как узнать размер. Это статья не для их.
10:58
Точно! И запрос будет скорее всего “размер папки”. Так что – спасибо за “конкретно и по существу!”.
Хотя можно было бы нормально так зафлеймить на тему каталог/папка/директория… быстро перейти к аргументу “все вокруг *** , а я Д’Артаньян” и ничего полезного по существу вопроса не сказать ;), на что вас, по-моему, и пытались развести ))