Практически в любой UNIX-like операционной системе можно получить полную информацию о размере каталогов с помощью утилиты du.
Как в df, ключ -h отображает вывод в human-readable виде, т.е. в Mbytes, Kbytes etc.
Самое распространенное применение – с ключами -h и -s. Ключ -s указывает, что требуется отобразить общую информацию о каталоге, не отображая все каталоги и файлы:
# du -hs /home/setevoy/
72k /home/setevoy/
Ключ -a указывает обрабатывать не только каталоги, но и файлы:
# 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/
Ключ -c выводит в конце списка общую информацию о размере каталога, после обработки всех аргументов:
# du -hc /home/setevoy/
8.0k /home/setevoy/.ssh
72k /home/setevoy/
72k total
Очень полезный ключ -L – указывает о необходимости подсчета размера файлов/каталогов, на которые указывают симлинки, вместо подсчета размера самого файла ссылки.
К примеру:
# pwd
/home/setevoy
# ls -la
…
lrwxr-xr-x 1 root setevoy 23 Aug 17 00:16 setevoy -> /usr/local/www/setevoy/
Сам каталог /home/setevoy/setevoy имеет размер 0 байт:
# pwd
/home/setevoy
# du -ha
…
0B ./setevoy
72k .
Однако каталог /usr/local/www/setevoy/ имеет размер 8 байт:
# pwd
/home/setevoy
# du -haL
8.0k ./setevoy
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 setevoy
Без ключа -n:
# du -h -d 1 *setevoy*|sort
4.0k setevoy1
8.0k setevoy
И с ним:
# du -hn -d 1 *setevoy*|sort
4.0k setevoy1
И последний полезный аргумент -х. Указывает не учитывать каталоги, которые являются точками монтирования других файловых систем.