Практически в любой UNIX-like операционной системе можно получить полную информацию о размере каталогов с помощью утилиты du. Как в df, ключ -h отображает вывод в human-readable виде, т.е. в Mbytes, Kbytes etc. Самое распространенное применение — с ключами -h и -s. Ключ -s указывает, что требуется отобразить общую информацию о каталоге, не отображая все каталоги и файлы:

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

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

[code language="bash"]# du -ah /home/setevoy/

4.0k    /home/setevoy/.bash_history
4.0k    /home/setevoy/.ssh/known_hosts
8.0k    /home/setevoy/.ssh
72k    /home/setevoy/[/code]

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

[code language=»bash»]# du -hc /home/setevoy/
8.0k    /home/setevoy/.ssh
72k    /home/setevoy/
72k    total[/code]

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

[code language=»bash»]# pwd
/home/setevoy

ls -la


lrwxr-xr-x  1 root     setevoy    23 Aug 17 00:16 setevoy -> /usr/local/www/setevoy/[/code]

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

[code language=»bash»]# pwd
/home/setevoy

du -ha


0B    ./setevoy
72k [/code]

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

[code language="bash"]# pwd
/home/setevoy

du -haL

8.0k    ./setevoy
80k    .[/code]

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

[code language=»bash»]# 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/[/code]

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

[code language=»bash»]# 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/[/code]

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

# 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:

[code language=»bash»]# ls -lo

drwxr-xr-x   2 root  wheel  nodump  512 Aug 17 00:18 setevoy[/code]

Без ключа -n:

[code language=»bash»]# du -h -d 1 setevoy|sort
4.0k    setevoy1
8.0k    setevoy[code]

И с ним:

[code language=»bash»]# du -hn -d 1 setevoy|sort
4.0k    setevoy1[/code]

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