Linux команды · 4 min read · Sep 20, 2025

Учебник по команде du в Linux для начинающих (10 примеров)

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

Но прежде чем начать, стоит отметить, что все примеры и инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04 LTS.

Команда du в Linux

Вот синтаксис команды du:

du [OPTION]... [FILE]...

А вот как страница man этого инструмента описывает его:

du - оценить использование пространства файла
  
Суммировать использование диска для набора FILE, рекурсивно для каталогов.

Следующие примеры в формате вопрос-ответ должны дать вам лучшее представление о том, как работает du.

Вопрос 1. Как узнать использование диска для одного или нескольких файлов с помощью du?

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

du [file1] [file2] ...

Вот пример:

Как вы можете видеть в выводе, число, отображаемое в первом столбце, представляет собой использование диска соответствующего файла.

Вы также можете сделать это для каталога:

В случае каталога вывод показывает использование диска для подкаталогов, а также для родительского каталога в целом.

Вопрос 2. Как заставить du отображать информацию об использовании в удобочитаемой форме?

Одна из проблем, когда вы запускаете du в режиме по умолчанию, заключается в том, что цифра использования, полученная в выводе, неясна. Например, вывод на скриншотах, показанных в предыдущем разделе, не говорит, что означают ‘4’ и ‘8’ - это байты, килобайты или что-то еще?

Чтобы улучшить вывод, вы можете использовать параметр командной строки -h:

du -h [file1] [file2] ...

Вот пример этого:

Теперь из вывода ясно, что использование диска указано в килобайтах.

Вопрос 3. Как заставить du отображать количество всех файлов в каталоге?

По умолчанию, когда вы передаете имя каталога в качестве ввода для du, инструмент показывает только информацию, связанную с использованием, для входного каталога и подкаталогов (если таковые имеются).

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

заставить du отображать количество всех файлов в каталоге - часть 2

Вопрос 4. Как заставить du выводить общую сумму использования?

Это можно сделать с помощью параметра командной строки -c. Например:

Как видно из скриншота выше, внизу вывода добавляется новая строка, показывающая общую сумму использования диска.

Вопрос 5. Как заставить du отображать информацию об inode вместо использования блоков?

Для этого вам нужно использовать параметр –inode. Вот скриншот этого параметра в действии:

Вопрос 6. Как заставить du принимать ввод из файла или STDIN?

Это можно сделать с помощью параметра командной строки –files0-from. Предположим, имена входных файлов записаны в файле с именем inp_list, тогда вы можете использовать команду du следующим образом:

du --files0-from=inp_list

Например, вот этот параметр в действии:

Пожалуйста, имейте в виду, что имена, которые вы вводите в входном файле (inp_list в нашем случае выше), должны быть завершены NUL. Например, наш файл inp_list содержал следующие данные:

Мы сделали это через Vim. Чтобы узнать, как вы можете сделать это через Vim, перейдите сюда.

Двигаясь дальше, вы также можете заставить du принимать ввод из STDIN. Для этого вам нужно передать дефис (-) в качестве значения для параметра –files0-from. В этом случае, после ввода каждого имени файла в STDIN, вам нужно дважды нажать Ctrl+d.

Вопрос 7. Как заставить du исключить размер подкаталогов из размера родительского каталога?

В конце вопроса 1 выше мы обсуждали, как вы можете использовать du для отображения использования диска для каталога. Вывод показал, что хотя размер подкаталогов отображается отдельно, запись для родительского каталога (того, который был передан в вводе) показывает комбинированный размер всего.

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

Вопрос 8. Как заставить du показывать время последнего изменения в выводе?

Для этого используйте параметр командной строки –time. Вот пример:

Вопрос 9. Как заставить du исключить определенный тип файлов?

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

du --exclude=PATTERN [Dir-name]

Например, следующий скриншот показывает вышеуказанную команду в действии для файлов .png.

Вопрос 10. Как задать глубину каталога для du?

Если хотите, вы также можете ограничить команду du определенной глубиной каталога. Таким образом, инструмент будет выводить информацию об использовании только для каталогов, которые он встречает на уровне, указанном пользователем. Эта функция доступна с помощью параметра –max-depth.

Итак, если вы хотите ограничить du до верхнего уровня каталога, передайте ‘0’ в качестве значения для этого параметра.

du --max-depth=0 [dir-name]

Вот несколько примеров этого параметра:

задать глубину каталога для du

Заключение

du - это полезный инструмент командной строки, который может прийти вам на помощь в различных ситуациях. Кроме того, его несложно понять и использовать. Мы обсудили некоторые основные параметры командной строки здесь. Для получения более подробной информации перейдите на страницу man инструмента.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.