Как узнать размер каталога в Linux
При составлении списка содержимого каталога с помощью команды ls вы могли заметить, что размер каталогов почти всегда составляет 4096 байт (4 КБ). Это размер пространства на диске, который используется для хранения метаинформации для каталога, а не то, что он содержит.
Команда, которую вы хотите использовать для получения фактического размера каталога, — это du , что сокращенно от «использования диска».
Получение размера каталога
Команда du отображает объем файлового пространства, используемого указанными файлами или каталогами. Если указанный путь является каталогом, du суммирует использование диска для каждого подкаталога в этом каталоге. Если путь не указан, du сообщает об использовании диска в текущем рабочем каталоге .
При вызове без каких-либо параметров du отображает использование диска для данного каталога и каждого из его подкаталогов в байтах.
Как правило, вам нужно отображать пространство, занимаемое каталогом, в удобочитаемом формате. Например, чтобы получить общий размер каталога /var , вы должны выполнить следующую команду:
Результат будет выглядеть примерно так:
Поясним команду и ее аргументы:
- Команда начинается с sudo потому что большинство файлов и каталогов внутри каталога /var принадлежат пользователю root и не доступны для чтения обычным пользователям. Если вы опустите sudo команда du напечатает «du: невозможно прочитать каталог».
- s — отображать только общий размер указанного каталога, не отображать общие размеры файлов для подкаталогов.
- h — размеры печати в удобочитаемом формате ( h ).
- /var — путь к каталогу, размер которого вы хотите получить.
Что, если вы хотите отобразить использование диска подкаталогами первого уровня? У вас есть два варианта. Первый — использовать символ звездочки ( * ), как показано ниже, что означает «сопоставить все, что не начинается с точки ( . )». Параметр -c указывает du вывести общую сумму всех размеров:
Другой способ получить отчет об использовании диска подкаталогами первого уровня — использовать параметр —max-depth :
По умолчанию команда du показывает дисковое пространство, используемое каталогом или файлом. Чтобы узнать очевидный размер каталога, используйте параметр —apparent-size . «Видимый размер» файла — это фактический объем данных в файле.
Когда вы передаете каталог через SCP , Rsync . Или SFTP, объем данных, передаваемых по сети, является очевидным размером файлов. Вот почему размер пространства на диске, используемого в источнике, при отображении с помощью du (без —apparent-size ) не совпадает с размером целевого объекта.
Команду du также можно комбинировать с другими командами с конвейерами.
Например, чтобы напечатать 5 самых больших каталогов в каталоге /var , вы должны направить вывод du в команду sort для сортировки каталогов по их размеру, а затем передать вывод в команду head , которая распечатает только 5 верхних каталогов. :
Как посмотреть размер папки в Linux
Посмотреть занимаемое место конкретной директории на диске Linux получится через любой файловый менеджер. Достаточно открыть свойства файла. Но там информация отображается в кратком виде, а нередко нужны подробности. С помощью утилиты ls получить детальные сведения не получится. А вот утилита du для этих целей подойдет отлично.
В данной статье мы расскажем, как посмотреть размер папки в Linux с помощью du. Для этого разберем два примера ее использования.
Как посмотреть размер папки в Linux
Сначала мы опишем, как получить информацию об определенной папке, с учетом или без учета ее вложений. А потом перейдем к подпапкам в конкретном каталоге. Заодно упомянем несколько полезных нюансов работы с du, например, возможность сортировки данных.
1. Определённая папка
В качестве примера возьмем папку Downloads. Команда для вывода ее размера выглядит следующим образом:
sudo du -sh /home/root-user/Downloads
В результате выведется её занимаемое место на диске:
Второй полезный сценарий использования утилиты du заключается в выводе размера всех вложенных папок в определенной директории, без учета файлов внутри. Опять в качестве примера возьмем директорию Downloads. Вот нужная нам команда:
sudo du -h /home/root-user/Downloads
В статье мы вкратце рассказали о том, как посмотреть размер папки в Linux и ее вложений с помощью утилиты du. Заодно упомянули возможность сортировки и другие важные нюансы. А если вам интересны еще сценарии использования du в терминале Linux, то ознакомьтесь с данной статьей. Там подробно разобран ее синтаксис, доступные опции и конкретные примеры.
Как узнать размер папки в Linux
В операционных системах на базе Linux посмотреть размер папки (директории) можно с помощью команды du. Эта команда, выполняемая в консоли, позволяет оценить используемый объем места на жестком диске отдельно по папкам и файлам, просуммировать результат, узнать общий размер папки.
Синтаксис
Общий синтаксис команды du следюущий:
du
du имяПапки
du [ключи] имяПапки
Примеры использования
Без передачи каких-либо параметров команда du выводит название и размер каждой папки по текущему пути, при этом включая в вывод все подкаталоги:
Для того, чтобы вывести такую же информацию об определенной папке, укажите её при вызове команды, например:
Чтобы получить значения размеров папок в более удобном для восприятия формате, а именно в килобайтах (K), мегабайтах (M) или гигабайтах (G) используйте ключ -h:
Для того, чтобы узнать общий размер, который занимает определенная папка вызовите команду du с ключем -s:
Лучше будет запустить команду du с ключами -s и -h совместно:
Тогда вывод воспринять легче:
Ключ -c используется для подсчета общей суммы размеров папок так:
Другая удобная опция команды du это ключ —max-depth, который задает глубину папок для просмотра. Если задать глубину равной единице, то можно посмотреть общие размеры всех папок по указанному пути. Выполните:
How can I calculate the size of a directory?
How to know the size of a directory? Including subdirectories and files.
12 Answers 12
Or to get human readable output:
The -s option means that it won’t list the size for each subdirectory, only the total size.
While using a separate package such as ncdu may work well, the same comparison of many folders can be done, to some degree, by just giving du a list of folders to size up. For example to compare top-level directories on your system.
will list in human-readable format the sizes of all the directories, e.g.
![]()
GNU du takes a -b option.
See the man page and the info page for more help:
-b , —bytes is equivalent to —apparent-size —block-size=1
-c produces grand total
![]()
du -ahd 1 | sort -h will have a better visualization that sorted the items.
![]()
you can also use ls -ldh:
ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l is for long listing ; -d is for displaying dir info, not the content of the dir, -h is for displaying size in huma readable format.
This helps find large directories to then sift through using du -sh ./*
![]()
You can use «file-size.sh» from the awk Velour library:
The original question asked the size, but did not specify if it was the size on disk or the actual size of data.
I have found that the calculation of ‘du’ can vary between servers with the same size partition using the same file system. If file system characteristics differ this makes sense, but otherwise I can’t figure why. The ‘ls|awk» answer that Steven Penny gave yields a more consistent answer, but still gave me inconsistent results with very large file lists.
Using ‘find’ gave consistent results for 300,000+ files, even when comparing one server using XFS and another using EXT4. So if you want to know the total bytes of data in all files then I suggest this is a good way to get it: