Часто вам может понадобиться узнать размер папки в Linux, особенно если ваш диск становится переполненным. Но когда мы выводим список папок или каталогов с помощью команды ls, их размер всегда отображается как 4kb. Это не размер содержимого папки, а только ее метаданных. В этой статье мы узнаем, как узнать размер каталога в Linux с помощью команды du. Она полезна для определения самых больших каталогов на вашем диске, чтобы вы знали, какие папки занимают больше всего места на диске. Вы можете использовать эти команды почти в каждом дистрибутиве Linux.
Как узнать размер каталога в Linux
Для нашей цели мы будем использовать команду du. Команда du возвращает пространство указанного файла или каталога. Если вы введете путь к каталогу для команды du, она подсчитает общее пространство, занимаемое его подкаталогами и файлами. Если вы не укажете путь, команда du выдаст вам дисковое пространство текущего рабочего каталога. Она также поддерживает множество опций, которые помогут вам получить нужную информацию. Вот синтаксис команды du.
1 | du [options] [путь_к_файлу_или_каталогу] |
Например, если вы хотите узнать размер папки /home/ubuntu, используйте следующую команду.
1 2 | du /var |
Вы увидите, что он отображает не только общий размер папки, но и размер каждого файла и подпапки в ней. Общее пространство каталога будет показано только в последней строке вывода. Это может быть довольно много в зависимости от количества подпапок и файлов в конкретной папке. Если вы хотите увидеть размер только указанной директории, но не ее поддиректорий и файлов, используйте опцию -s.
1 | du -s /var |
Кроме того, по умолчанию команда du отображает все размеры в байтах. Приведенный выше вывод означает, что /home/ubuntu занимает 2067884 байта данных. Если вы хотите, чтобы команда du отображала информацию в человекочитаемых форматах, таких как Мб, Гб и т.д., используйте опцию -h.
1 | du -sh /var |
Когда вы выполняете команду du для определенного каталога, она просматривает все его файлы и подкаталоги и выводит список их размеров. Если вы хотите просмотреть дисковое пространство только непосредственных подкаталогов, а не их вложенных папок, то есть подкаталогов первого уровня, вы можете управлять этим с помощью опции -max-depth. В следующем примере мы хотим просмотреть информацию только о ближайших вложенных папках, то есть первого уровня, а не о любых их подкаталогах.
1 | du --max-depth=1 /var |
Вы также можете использовать команду du для вычисления кажущегося размера файла или папки. Кажущийся размер - это размер фактических данных, присутствующих в файле. Для этого вы можете использовать опцию -apparent-size.
1 2 | du --max-depth=1 --apparent-size /var |
Вы увидите, что существует разница в информации о размере с использованием опции --apparent-size и без нее. Во время передачи файлов видимый размер используется для определения объема передаваемых данных.
Теперь, когда вы знаете, как узнать размер каталога в Linux, вы можете использовать команду du для получения списка самых больших папок на вашем диске. Вот команда для получения списка 5 самых больших папок в Linux.
1 | sudo du -h /var | sort -rh | head -5 |
В приведенной выше команде мы передаем вывод команды du команде sort для сортировки каталогов по их размеру, а затем передаем его команде head, которая выведет только 5 самых больших каталогов.
Заключение
В этой статье мы узнали, как получить размер каталога в Linux. Вы можете настроить его в соответствии с вашими требованиями.