Всем привет в этой статье я расскажу как узнать размер каталога в Linux. При использовании команды ls
для просмотра содержимого каталога, вероятно вы обратили внимание, что размеры каталогов часто равны 4096 байт (4 КБ). Это размер места на диске, которое используется для хранения метаинформации о каталоге, а не то, что он содержит.
Если вам требуется получить фактический размер каталога, тогда вам надо воспользоваться командой du
. Данная команда означает «disk usage» (использование диска).
Узнать размер каталога в Linux
Команда du
отображает объем файлового пространства, используемого указанными файлами или каталогами. Если указанный путь является каталогом, тогда du
суммирует использование дискового пространства каждого подкаталога в этом каталоге. Если путь не указан, du
сообщает об использовании дискового пространства текущего рабочего каталога.
При вызове без опций команда du отображает использование диска заданного каталога и его подкаталогов в байтах.
Чтобы удобно отобразить пространство, занимаемое каталогом, обычно требуется использовать читаемый формат. Например, чтобы получить общий размер каталога /usr
, выполните следующую команду.
sudo du -sh /usr
Ответ в терминале будет примерно следующий.
Рассмотрим выполненную команду du
и ее параметры для более подробного объяснения.
- При выполнении данной команды требуется использовать sudo. Так как большинство файлов и каталогов в Linux принадлежат пользователю root. Соответственно эти файлы не доступны для чтения обычным пользователям. Если вы не добавите
sudo
, то командаdu
выдаст сообщение «du: cannot read directory«. - При использовании опции «
s
» командаdu
будет выводить только общий размер указанного каталога, не включая суммарный размер файлов внутри подкаталогов. - А при использовании параметра «
h
» командаdu
будет выводить размеры в человекочитаемом формате. /usr
— Это директория, для которой вы хотите получить размер.
Посмотреть использование диска для подкаталогов первого уровня
Если вдруг вы хотите посмотреть использование диска для подкаталогов первого уровня, тогда у вас есть пара варианта. Первый вариант — это использовать символ звездочки (*), как показано ниже. Это означает «соответствует всему, кроме файлов и каталогов, начинающихся с точки (.)«. Параметр -c
указывает команде du
вывести общий итог всех размеров.
sudo du -shc /usr/*
Вы увидите при мерно такой ответ.
Второй способ получить отчет об использовании диска для подкаталогов первого уровня это использовать опцию —max-depth.
sudo du -h --max-depth=1 /usr
По умолчанию команда du
отображает использование дискового пространства каталога или файла. Если вам требуется узнать видимый размер каталога, тогда вы можете использовать параметр --apparent-size
. Видимый размер файла показывает, сколько данных фактически содержится в файле.
sudo du -sh --apparent-size /usr
Когда вы передаете папку (каталог) через SCP, Rsync или SFTP, тогда объем данных передаваемых по сети является видимым размером файлов. Поэтому размер пространства на диске, используемого на источнике и отображаемого командой du
(без --apparent-size
), может не совпадать с размером в системе.
Команду du
можно комбинировать с другими командами. Можно например отобразить 5 самых больших каталогов внутри папки /usr
. Также можно передать вывод команды du в команду sort
. Это действие отсортирует папки по их размеру, а затем передать вывод в команду head
, которая покажет только 5 толстых папок.
sudo du -h /usr/ | sort -rh | head -5
Вот такой ответ терминала мы получим при объединение с командой du.
Заключение
В заключение, команда du в Linux позволяет узнать размер каталога. Это полезная утилита для определения объема занимаемых файлами и каталогами. Вы можете использовать различные опции такие как -s
, -h
, --max-depth
и --apparent-size
. Данные параметры помогут вам получить необходимую информацию о размере каталога в удобочитаемом формате. Если у вас возникнут вопросы или замечания, не стесняйтесь спрашивать в комментариях. Мы с удовольствием поможем вам.