FreeBSD&Linux: du – проверка размера каталогов, примеры использования

Автор: | 17/08/2012
 

Практически в любой 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

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