Как исключить поддиректорию из подсчета размера директории

При работе в терминале с сервером нередко возникает потребность узнать размер дискового пространства, которое занимает конкретная директория со всеми вложенными поддиректориям. Для этого существует команда 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

Обратите внимание, что при использовании спецсимволов, их надо экранировать одинарными кавычками.

Вот таким нехитрым способом можно исключать из подсчета занимаемого дискового пространства не только поддиректории, но и файлы по маске.

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться