Команда DU

du

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

Пример. Просмотр общего объема, занимаемого каталогом /var и всеми его подкаталогами первого уровня. 

# du -shc /var/*

Синтаксис команды du более подробно: 

du [опции] [файл...] 
Опции: [-abcDhHklLmsSxX] [--block-size=количество] [--exclude=шаблон] [--max-depth=n] [--help] [--version] [--] 
-a, --all 
Показывать размеры для всех встретившихся файлов, а не только для каталогов. 
-b, --bytes 
Выдавать размеры в байтах вместо килобайтов. 
--block-size=количество 
Выдавать размеры в блоках длиной количество байт. (Новое в fileutils-4.0.) 
-c, --total 
Выдавать общий итог по всем аргументам после того, как все аргументы будут обработаны. Это может быть использовано для выяснения суммарного использованного дискового пространства для всего списка заданных файлов и каталогов. 
-D, --dereference-args 
Раскрывать символьные ссылки, заданные в командной строке. Не оказывает влияния на остальные символьные ссылки. Это полезно для поиска использованного дискового пространства в таких каталогах, как /usr/tmp, которые часто являются символьными ссылками. 
--exclude=шаблон 
При рекурсивном выполнении пропускать каталоги или файлы, чьи имена совпадают с заданным шаблоном. Этот шаблон может быть любым файловым шаблоном Bourne shell. (Новое в fileutils-4.0.) 
-h, --human-readable 
Добавлять букву размера, например M для двоичного мегабайта (`мебибайт'), к каждому размеру. 
-H, --si 
Делает то же, что и опция -h, но использует официальные единицы измерения SI (где для расчетов используется 1000 вместо 1024 и, таким образом, M - это 1000000 вместо 10485576). (Новое в fileutils-4.0.) 
-k, --kilobytes 
Выдавать размеры в KiB (бинарных килобайтах, 1024 байта). 
-l, --count-links 
Подсчитывать размеры всех файлов, даже если они уже встречались (например, при использовании жестких ссылок). 
-L, --dereference 
Раскрывать символьные ссылки (показывать дисковое пространство, используемое файлом или каталогом, на которые указывает ссылка, вместо пространства, используемого самой ссылкой). 
-m, --megabytes 
Выдавать размеры в MiB (бинарных мегабайтах, 1048576 байтов). 
--max-depth=n 
Выдавать общий итог для каталога (или файла, если задана опция -a ), только если он находится не более чем на n уровней глубины ниже заданного в командной строке аргумента; --max-depth=0 означает то же самое, что и опция -s . (Новое в fileutils-4.0.) 
-s, --summarize 
Выдавать только суммарный итог для каждого аргумента. 
-S, --separate-dirs 
Выдавать отдельно размер каждого каталога, не включая размеры подкаталогов. 
-x, --one-file-system 
Пропускать каталоги, находящиеся не на той же файловой системе, что и обрабатываемый аргумент командной строки. 
-X файл, --exclude-from=файл 
Выполняет те же действия, что и опция --exclude, за исключением того, что шаблоны берутся из указанного файла. Шаблоны перечисляются по одному на строку. Если файл задан как `-', то шаблоны читаются из стандартного ввода. 
--help 
Выдать подсказку на стандартный вывод и успешно завершиться. 
--version 

Выдать информацию о версии на стандартный вывод и успешно завершиться.

Практически в любой UNIX-like операционной системе можно получить полную информацию о размере каталогов с помощью утилиты du.

Как и в df ключ -h отображает вывод в human-readable виде, т.е. в Mbytes, Kbytes etc.

Самое распространенное применение — с ключами -h и -s . Ключ -s указывает, что требуется отобразить общую информацию о каталоге, не отображая все каталоги и файлы:

# du -hs /home/ubuntu/
72k    /home/ubuntu/

Ключ -a указывает обрабатывать не только каталоги, но и файлы:

# du -ah /home/ubuntu/
4.0k    /home/ubuntu/.bash\_history
4.0k    /home/ubuntu/.ssh/known\_hosts
8.0k    /home/ubuntu/.ssh
72k    /home/ubuntu/

Ключ -c выводит в конце списка общую информацию о размере каталога, после обработки всех аргументов:

# du -hc /home/ubuntu/
8.0k    /home/ubuntu/.ssh
72k    /home/ubuntu/
72k    total

Очень полезный ключ -L - указывает о необходимости подсчета размера файлов/каталогов, на которые указывают ссылки, вместо подсчета размера самого файла ссылки.

К примеру:

# pwd
/home/ubuntu
# ls \-la
lrwxr-xr-x  1 root     ubuntu    23 Aug 17 00:16 ubuntu -> /usr/local/www/ubuntu/

Сам каталог /home/ubuntu/ubuntu имеет размер 0 байт:

# pwd
/home/ubuntu
# du -ha
0B    ./ubuntu
72k    .

Однако каталог /usr/local/www/ubuntu/ имеет размер 8 байт:

# pwd
/home/ubuntu
# du -haL
8.0k    ./ubuntu
80k    .

Подсчитать размер каждого каталога, находящего в уровне вложенности 1 от указанного каталога:

# du -d 1 -h /usr/local/www/
1.2M    /usr/local/www/apache22
20M    /usr/local/www/phpMyAdmin
4.2M    /usr/local/www/loganalyzer
25M    /usr/local/www/

Ключ -I Ignore — пропускать файлы и каталоги, имеющие определенное имя:

# du -I «phpMyAdmin» -h -d 1 /usr/local/www/
1.2M    /usr/local/www/apache22
4.2M    /usr/local/www/loganalyzer
5.3M    /usr/local/www/

И наоборот — отобразить размер каталогов или файлов, содержащих определенный шаблон:

# pwd
/usr/local/www
# du -h -d 1 \*phpMyAdmin\*|sort
20M    phpMyAdmin
52k    phpMyAdmin/examples
116k    phpMyAdmin/setup
2.3M    phpMyAdmin/themes
2.4M    phpMyAdmin/js
5.4M    phpMyAdmin/libraries
8.5M    phpMyAdmin/locale

Ключ -n при подсчете размера каталога указывает пропустить файлы и каталоги, имеющие флаг nodump__:

# ls \-lo
drwxr-xr-x   2 root  wheel  nodump  512 Aug 17 00:18 ubuntu

Без ключа -n:

# du -h -d 1 \*ubuntu\* | sort
4.0k    ubuntu1
8.0k    ubuntu

И с ним:

# du -hn -d 1 \*ubuntu\* | sort
4.0k    ubuntu1

И последний полезный аргумент -x. Указывает не учитывать каталоги, которые являются точками монтирования других файловых систем.

Источник: http://www.ruhelper.com/linux/du.html