ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как получить размер каталога в Linux

Как получить размер каталога в Linux

При просмотре содержимого каталога с помощью команды ls вы, возможно, заметили, что размер каталогов почти всегда составляет 4096 байт (4 КБ). Это размер пространства на диске, который используется для хранения метаинформации для каталога, а не того, что он содержит.

Команда, которую вы хотите использовать, чтобы получить фактический размер каталога, du является сокращением от «disk usage». Мы покажем вам, как использовать эту команду.

 

Команда du отображает объем файлового пространства, используемого указанными файлами или каталогами. Если указанный путь является каталогом, du суммирует использование диска каждым файлом и подкаталогом в этом каталоге. Если путь не указан, du сообщит об использовании диска в текущем рабочем каталоге.

Если вы запустите du без какой-либо опции, он отобразит использование диска указанным каталогом и каждым из его подкаталогов в байтах.

В большинстве случаев вы хотите отобразить только пространство, занимаемое каталогом, в удобочитаемом формате. Например, чтобы получить общий размер каталога /var, вы должны выполнить следующую команду:

sudo du -sh /var

Вывод будет выглядеть примерно так.

29G	/var

Давайте объясним команду и ее аргументы:

Что делать, если вы хотите отобразить использование диска в подкаталогах первого уровня. У вас есть два варианта, первый – использовать символ звездочки, как показано ниже, что означает «все, что не начинается с точки ( .)». Переключатель shc указует напечатать итог всех размеров:

sudo du -shc /var/*
2.0M    /var/backups                                                                                                                                          
111M    /var/cache                                                                                                                                            
8.8G    /var/lib                                                                                                                                              
4.0K    /var/local                                                                                                                                            
0       /var/lock                                                                                                                                             
33M     /var/log                                                                                                                                              
4.0K    /var/mail                                                                                                                                             
4.0K    /var/opt                                                                                                                                              
0       /var/run                                                                                                                                              
988M    /var/spool                                                                                                                                            
44K     /var/tmp

Другой вариант – использовать переключатель –max-depth и указать уровень подкаталогов:

sudo du -h --max-depth=1 /var
19G     /var/www                                                                                                                                              
111M    /var/cache                                                                                                                                            
33M     /var/log                                                                                                                                              
988M    /var/spool                                                                                                                                            
2.0M    /var/backups                                                                                                                                          
9.2G    /var/lib                                                                                                                                              
4.0K    /var/mail                                                                                                                                             
4.0K    /var/opt                                                                                                                                              
4.0K    /var/local                                                                                                                                            
44K     /var/tmp                                                                                                                                              
29G     /var

По умолчанию утилита du показывает дисковое пространство, используемое каталогом или файлом. «Очевидный размер» файла – это количество данных в нем.

Чтобы найти видимый размер каталога, используйте переключатель –apparent-size.

sudo du -sh --apparent-size /var

Когда вы передаете каталог через SCP , Rsync или SFTP, объем данных, который будет передаваться по сети, равен кажущемуся размеру файлов. Вот почему размер пространства на диске, который используется в источнике при отображении с помощью du (без –apparent-size), не будет таким же, как размер в целевой папке.

Команду du также можно комбинировать с другими командами с помощью каналов. Например, чтобы напечатать 5 самых больших каталогов в каталоге /var, вы бы использовали:

sudo du -h /var/ | sort -rh | head -5
29G     /var/                                                                                                                                                 
19G     /var/www                                                                                                                                              
17G     /var/www/andreyex/data/www                                                                                                                            
17G     /var/www/andreyex/data                                                                                                                                
17G     /var/www/andreyex

Из этой статьи вы узнали, как получить размер каталога с помощью команды du.

Если у вас есть какие-либо вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Exit mobile version