Команда du позволяет задействовать одноименную утилиту, предназначенную для вывода информации об объеме дискового пространства, занятого файлами и директориями. Она принимает путь к элементу файловой системы и выводит информацию о количестве байт дискового пространства или блоков диска, задействованных для его хранения.
Базовый синтаксис команды выглядит следующим образом:
$ du [параметр] [путь-к-элементу-файловой-системы-1] [...]
Утилита поддерживает ряд параметров, хотя и может выводить информацию о размере текущей директории в случае вызова без параметров и пути к элементу файловой системы, то есть, файлу или директории. Параметр -h позволяет выводить числовые значения занятого дискового пространства в килобайтах (K), мегабайтах (M) и гигабайтах (G), а не в количестве блоков диска, как это происходит по умолчанию. Параметр -a позволяет выводить информацию не только о размерах директорий, но и о размерах хранящихся в них файлов. Параметр -s напротив позволяет выводить лишь информацию об общем объеме директории без вывода информации об объемах ее элементов. Параметр -с позволяет выводить информацию об общем объеме всех отображенных элементов файловой системы. Кроме того, существуют такие параметры, как параметр --time, позволяющий выводить метки времени модификации файлов или директорий и параметр --exclude=<шаблон>, позволяющий исключать файлы с соответствующими шаблону именами.
Для получения информации об объеме директории, а также всех ее поддиректорий может использоваться команда du без каких-либо параметров — главное передать путь к интересующей директории:
$ du /home/alexfc/bakfile/
В результате будет получен аналогичный вывод:
8348 /home/alexfc/nolf228/other
9184 /home/alexfc/nolf228/
Очевидно, что объемы поддиректорий даны в количестве блоков диска. Для того, чтобы получить объемы директорий в килобайтах и мегабайтах следует использовать параметр -h:
$ du -h /home/alexfc/bakfile/
Теперь будет получен более читаемый вывод:
8,2M /home/alexfc/nolf228/other
9,0M /home/alexfc/nolf228/
Для получения лишь общего объема директории следует добавить параметр -s:
$ du -hs /home/alexfc/bakfile/
Вывод будет содержать единственную строку:
9,0M /home/alexfc/nolf228/
Если же требуется получить информацию обо всех хранящихся в директориях файлах, нужно использовать параметр -a:
$ du -ha /home/alexfc/bakfile/
Вывод будет выглядеть аналогичным образом:
380K /home/alexfc/nolf228/splash1280.jpg
188K /home/alexfc/nolf228/nolf228.jpg
264K /home/alexfc/nolf228/splash1024.jpg
8,2M /home/alexfc/nolf228/other/Better_Red_Than_Dead.rar
8,2M /home/alexfc/nolf228/other
9,0M /home/alexfc/nolf228/
Для вывода общего объема следует использовать параметр -c:
$ du -hс /home/alexfc/bakfile/
Теперь в выводе появится дополнительная строка «итого»:
8,2M /home/alexfc/nolf228/other
9,0M /home/alexfc/nolf228/
9,0M итого
В том случае, если нужно скрыть информацию о файлах с определенными именами, может использоваться параметр --exclude=<шаблон>. Например, данная команда позволяет скрыть информацию обо всех графических файлах с расширением .jpg:
$ du -ha --exclude="*.jpg" /home/alexfc/nolf228/
Вывод не будет содержать информации о файлах с упомянутым расширением, но будет содержать информацию о файлах со всеми другими расширениями, а также обо всех директориях. При этом объем директорий будет приведен в соответствие со списком отображаемых файлов :
8,2M /home/alexfc/nolf228/other/Better_Red_Than_Dead.rar
8,2M /home/alexfc/nolf228/other
8,2M /home/alexfc/nolf228/