Команда du в Linux - руководство и примеры
В Linux слово du означает «disk usage», и эта команда чаще всего используется для проверки размера (и другого использования пространства/диска) файлов и каталогов.
Команду du можно использовать в любом дистрибутиве Linux, включая Ubuntu, Debian, Fedora, Linux Mint и другие. Ее можно использовать даже в macOS.
Основной синтаксис команды du
Синтаксис команды du в Linux следующий:
du [OPTIONs] [FILEs]
Можно запустить команду du, просто введя «du» без каких-либо опций или флагов:
du
Это даст вывод информации об использовании диска для каталогов в каталоге, в котором находимся. Выполнение команды du без флагов и опций даст большой отчет с не очень читаемой статистикой.
Пример вывода данных при выполнении команды du без опций и флагов:
... много строк 164 ./re3 _2021_02_19/build 132576 ./re3 _2021_02_19 60 ./Download/openvpn 34568 ./Download 408364 .
И это только часть вывода при запуске du в данном каталоге. В реальности выводится множество строк для каждого (под)каталога существующий в опрашиваемом каталоге. Число в этом выводе - это (обычно) килобайты (KB).
Последняя строка результатов команды du - это общий размер каталога.
Если запустить команду без указания каталога, она будет запущена в том каталоге, в котором сейчас находимся (pwd). Если необходимо запустить команду в другом каталоге, нужно будет указать его после опций.
Пример:
du /var/www/html
Получим результаты для каталогов в пределах /var/www/html, независимо от того, в каком каталоге сейчас находимся.
Опции, которые могут использоваться с командой du
- -h, –human-readable - эта опция показывает размеры файлов в «человекочитаемом» формате, например: 100K, 100MB, 100G. Это наиболее часто используемая опция для du. Чтобы отобразить результаты только в КБ, МБ или ГБ, используются опции -k, -m или -g.
- -a, –all отображает все, включая каталоги и файлы.
- -t, –threshold=РАЗМЕР - исключает результаты меньше указанного РАЗМЕР, или больше -РАЗМЕР (если отрицательно). Пример:
du --threshold=1G
покажет только файлы размером более 1 ГБ.
- –time - показывает дату/время последнего изменения каждого файла, рядом с размером файла.
- -X, –exclude=ШАБЛОН - эта опция исключит файлы, соответствующие заданному шаблону. Пример:
du --exclude="*.txt"
исключит из вывода все файлы .txt.
- -s, –summarize - для получения общего размера каталога
- –help - получение подробной справки и информации о команде du и ее опциях
Примеры команды du, наиболее часто используемых
Отображение результатов в удобочитаемом виде.
Для этого используйте опцию -h. Пример:
du -h
Вывод:
164K ./re3 _2021_02_19/build 130M ./re3 _2021_02_19 60K ./Download/openvpn 34M ./Download 399M .
Вместо просто цифр, без указания, что это за цифры (KB, MB, GB)
Вывод каталогов и файлов в удобочитаемом формате
Для этого необходимо использовать опции -h и -a. Это наиболее часто используемый пример команды du:
du -ha
Это также отобразит размер файлов в удобочитаемом формате (K, M, G).
Исключение из результатов файлов и каталогов размером менее определенного размера
Чтобы исключить все файлы и каталоги, размер которых меньше 100 МБ, используйте параметр -threshold:
du -ha --threshold=100M
В результате будут показаны только файлы и каталоги, размер которых превышает 100 МБ.
Отображение даты последнего изменения
Для получения даты изменения файла или каталога рядом с размером в результатах, используется параметр –time. Пример:
du -ha --time
Получаем результат, аналогичный следующему:
3,7M 2019-07-15 13:54 ./Download/11bcd3c1d43688891ed23f5677a174ea.pdf 15M 2019-07-15 13:54 ./Download/286674e3082feb7e5afb92777e48821f.pdf 34M 2022-02-03 20:28 ./Download 399M 2022-02-20 19:55 .
Исключение определенных типов файлов
Часто используемой опцией для команды du является –exclude. Чаще всего она используется для исключения определенных типов файлов. Например, если необходимо исключить все файлы .txt из результатов, необходимо использовать:
du -ha --exclude="*.txt"
Вывести только общий размер каталога
Если необходимо проверить размер определенного каталога, используется опция -s (–summarize). Используя опцию -s, получаем информацию о размере каталога, для которого выполняется команда. Это также последняя строка вывода, когда выполнить команду du без опции -s.
Например:
du -hs /var/www/
Получим:
771M /var/www/html/
Выводится только размер каталога html
Более подробно об опциях du можно узнать набрав в командной строке
man du