При работе в терминале с сервером нередко возникает потребность узнать размер дискового пространства, которое занимает конкретная директория со всеми вложенными поддиректориям. Для этого существует команда du. Но что делать, если нужно исключить из подсчета размера директории какие-либо из вложенных директорий?
Для этого выполним несколько несложных шагов. Например, Вы находитесь в корневой директории пользователя.
Команда du -hsc * выведет следующую информацию:
# du -sch * 190M email 12K etc 584K logs 2.1M mod-tmp 0 tmp 517M www 709M total
Где:
- -h : ключ, позволяющий выводит размеры в человекопонятных значениях.(килобайты, мегабайты, гигабайты). По умолчанию команда du выводит размеры в байтах
- -s : ключ, выводящий только конечную информацию (суммарную) по размеру директории
- -c : выводит итоговое значение занимаемого дискового пространства.
И получаем, что в директории пользователя есть поддиректории, общим размером в 709 мегабайт.
Давайте исключим из подсчета директории logs, tmp, etc и mod-tmp для того, чтобы узнать, сколько занимает директория с сайтами www и директория с почтовыми ящиками - email
# du --exclude=etc --exclude=logs --exclude=mod-tmp --exclude=tmp -sch * 190M email 373M www 562M total
Получаем такой вывод информации о двух директориях и итоговым значением. С помощью параметра --exclude можно так же исключать и файлы по маске. Например исключим из подсчета все файлы с расширением .jpg
# du --exclude=etc --exclude=logs --exclude=mod-tmp --exclude=tmp --exclude='*.jpg' -sch * 190M email 297M www 486M total
Обратите внимание, что при использовании спецсимволов, их надо экранировать одинарными кавычками.
Вот таким нехитрым способом можно исключать из подсчета занимаемого дискового пространства не только поддиректории, но и файлы по маске.