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

How to Get the Size of a Directory in Linux

25 Мая 2020 | Терминал

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

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

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


Получение размера каталога 

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

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

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

sudo du -sh /var 

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

85G	/var
 

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

  • Команда начинается с того, sudo что большинство файлов и каталогов внутри /var каталога принадлежат пользователю root и недоступны для чтения обычным пользователям. Если опустить команду напечатает «ей: не может читать каталог». sudo du
  • s - Отображать только общий размер указанного каталога, не отображать итоговые размеры файлов для подкаталогов.
  • h - Размеры печати в удобочитаемом формате ( h ).
  • /var - Путь к каталогу, который вы хотите получить размер.

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

sudo du -shc /var/* 
24K	/var/db
4.0K	/var/empty
4.0K	/var/games
77G	/var/lib
4.0K	/var/local
0	/var/lock
3.3G	/var/log
0	/var/mail
4.0K	/var/opt
0	/var/run
196K	/var/spool
28K	/var/tmp
85G	total
 

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

sudo du -h --max-depth=1 /var 
77G	  /var/lib
24K	  /var/db
4.0K	/var/empty
4.0K	/var/local
4.0K	/var/opt
196K	/var/spool
4.0K	/var/games
3.3G	/var/log
5.0G	/var/cache
28K	/var/tmp
85G	/var
85G	total
 

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

sudo du -sh --apparent-size /var 

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

du Команда также может быть объединена с другими командами с трубами.

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

sudo du -h /var/ | sort -rh | head -5 
85G	/var/
77G	/var/lib
75G	/var/lib/libvirt/images
75G	/var/lib/libvirt
5.0G	/var/cache/pacman/pkg
 

Вывод

В Linux вы можете получить размер каталога, используя du команду.


    Комментарии

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

Загрузка комментариев...