Команда DU
du
Команда du выводит информацию о файле файлах, имена которых заданы в качестве параметров. Если задано имя каталога, то du определяет размер всех файлов и подкаталогов этого каталога на всех уровнях вложения. Результат работы команды может быть очень объемным. К счастью, существует опция -s для вывода сводной информации по каталогу. Если использовать du для получения информации о нескольких каталогах, можно добавить опцию -c для вывода суммарных данных. Для использования du вы должны иметь права чтения каталогов, к которым вы ее применяете.
Пример. Просмотр общего объема, занимаемого каталогом /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 указывает, что требуется отобразить общую информацию о каталоге, не отображая все каталоги и файлы:
Ключ -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 выводит в конце списка общую информацию о размере каталога, после обработки всех аргументов:
Очень полезный ключ -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 байт:
Однако каталог /usr/local/www/ubuntu/ имеет размер 8 байт:
Подсчитать размер каждого каталога, находящего в уровне вложенности 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__:
Без ключа -n:
И с ним:
И последний полезный аргумент -x. Указывает не учитывать каталоги, которые являются точками монтирования других файловых систем.
Источник: http://www.ruhelper.com/linux/du.html