Команда Du в Linux

17.11.2021

В некоторых случаях появляется нужда посмотреть сколько места занимают файлы в определённой папке и найти самые большие файлы для того чтобы их удалить. Для решения этих задач известно несколько инструментов, но самый простой из них, это утилита du. Она позволяет вывести размер всех файлов в определённой папке в байтах или в более удобном формате. Дальше разберемся что из себя представляет команда du Linux, а также как ею пользоваться для решения ваших рабочих задач.

Опции команды

Синтаксис простой. Достаточно передать опции и путь к папке с которой следует работать:

$ du опции /путь/к/папке

Опции утилиты:

  • -a, --all - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
  • -B, --block-size - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
  • -c, --total - выводить в конце общий размер всех папок;
  • -d, --max-depth - максимальная глубина вложенности директорий;
  • -h, --human-readable - выводить размер в единицах измерения удобных для человека;
  • --inodes - выводить информацию об использованию inode;
  • -L, --dereference - следовать по всем символическим ссылкам;
  • -l, --count-links - учитывать размер файла несколько раз для жестких ссылок;
  • -P, --no-dereference - не следовать по символическим ссылкам, это поведение используется по умолчанию;
  • -S, --separate-dirs - не включать размер подпапок в размер папки;
  • --si - выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
  • -s, --summarize - выводить только общий размер;
  • -t, --threshold - не учитывать файлы и папки с размером меньше указанного;
  • --time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
  • -X, --exclude - исключить файлы из подсчёта;
  • -x, --one-file-system - пропускать примонтированные файловые системы;
  • --version - вывести версию утилиты.

Чтобы просмотреть все опции выполните:

Как пользоваться командой?

Чтобы просто вывести список папок в определённом каталоге и занимаемое ими место, например, в /var выполните:

$ man du

Если необходимо, чтобы размер выводился в более читабельном виде используйте опцию -h:

$ du -h /var

Также можно указать размер блока. Тогда точность будет немного ниже, потому что минимальная единица измерения - один блок. Например, для вывода размера папок в мегабайтах с размером блока в 1024 килобайт используйте опцию -B с параметром M:

$ du -BM /var

Можно вывести размер не только папок, но и файлов, которые там находятся используйте опцию -a:

du -ha /var

Чтобы вывести только общий размер всех файлов и папок нужно применить опцию -s:

du -hs /var

Когда необходимо вывести размер папок без вложенных в них подпапок используйте опцию -m:

du -hS /var

Еще есть возможность вывести строчку с общим размером всей папки. Но использовать эту возможность целесообразно с опцией -S, общий размер папки во всех других случаях и так отображается:

$ du -hSc /var

Чтобы исключить все в лог:

du -hac --exclude="*.log"

Для сортировки значений в удобном формате:

du -h /var | sort -h