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

12 set 2022 2 min di lettura
Получение размера каталога в Linux
Indice dei contenuti

Введение

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

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

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

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

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

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

sudo du -sh /var

Вывод будет выглядеть следующим образом:

85G /var

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

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.