Android

Как узнать размер каталога в linux

HUGE EGGS Surprise Toys Challenge with Inflatable water slide

HUGE EGGS Surprise Toys Challenge with Inflatable water slide

Оглавление:

Anonim

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

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

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

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

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

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

sudo du -sh /var

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

85G /var

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

  • Команда начинается с sudo поскольку большинство файлов и каталогов в каталоге /var принадлежат пользователю root и недоступны для чтения обычным пользователям. Если вы опустите sudo команда du выведет «du: not read directory». 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 ), не совпадает с размером в целевом --apparent-size .

Команду du также можно комбинировать с другими командами с помощью каналов.

Например, чтобы вывести 5 самых больших каталогов в каталоге /var , вы должны передать вывод команды du команде sort для сортировки каталогов по их размеру, а затем head вывод в команду 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 .

дю терминал диск