Команда du в Linux

Команда du , сокращение от «использование диска», сообщает приблизительный объем дискового пространства, используемого данными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, занимающих большие объемы дискового пространства.

Как использовать команду du

Общий синтаксис команды du следующий:

du [OPTIONS]... FILE...

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

При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах.

du ~/Documents 

Вы также можете передать команде du несколько файлов и каталогов в качестве аргументов:

du ~/Documents ~/Pictures ~/.zshrc

Если вы запустите du для файла или каталога, для которого у вас нет прав, вы получите что-то вроде «du: невозможно прочитать каталог». В этой ситуации вам нужно будет добавить к команде sudo .

du много опций, мы выделим только наиболее часто используемые.

Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге.

du -a ~/Documents 

Обычно вы хотите отображать только пространство, занимаемое данным каталогом, в удобочитаемом формате. Для этого используйте параметр -h .

Например, чтобы получить общий размер /var/lib и всех его подкаталогов, вы должны выполнить следующую команду:

sudo du -h /var

Мы используем sudo потому что большинство файлов и каталогов внутри каталога /var/lib принадлежат пользователю root и не доступны для чтения обычным пользователям. Результат будет выглядеть примерно так:

...
4.0K	/var/lib/apt/mirrors/partial
8.0K	/var/lib/apt/mirrors
205M	/var/lib/apt
2.9G	/var/lib/

Чтобы сообщить только общий размер указанного каталога, а не подкаталогов, используйте параметр -s :

sudo du -sh /var
2.9G	/var

Параметр -c указывает du сообщать общую сумму. Это полезно, когда вы хотите получить объединенный размер двух или более каталогов.

sudo du -csh /var/log /var/lib
1.2G	/var/log
2.9G	/var/lib
4.1G	total

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

sudo du -h --max-depth=1 /var/lib
...
544K	/var/lib/usbutils
4.0K	/var/lib/acpi-support
205M	/var/lib/apt
2.9G	/var/lib

По умолчанию утилита du повторно использует дисковое пространство, используемое каталогом или файлом. Чтобы узнать очевидный размер файла, используйте переключатель --apparent-size . «Видимый размер» файла — это фактический объем данных в файле.

sudo du -sh --apparent-size /var/lib
2.9G	/var/lib

du также позволяет использовать шаблон оболочки. Например, чтобы получить размер всех каталогов, начинающихся с «Do» в вашем домашнем каталоге, вы должны запустить:

sudo du -csh ~/Do*
102M	/home/linuxize/Documents
358M	/home/linuxize/Downloads
460M	total

Использование du с другими командами

Команду du можно комбинировать с другими командами с конвейерами.

Например, чтобы напечатать 5 самых больших каталогов внутри каталога /var вы должны передать вывод du в команду sort чтобы отсортировать каталоги по их размеру, а затем передать результат в команду head которая распечатает только 5 верхних каталогов:

sudo du -h /var/ | sort -rh | head -5
4.6G	/var/
2.9G	/var/lib
2.6G	/var/lib/snapd
1.7G	/var/lib/snapd/snaps
1.2G	/var/log/journal/af8ce1d394b844fea8c19ea5c6a9bd09

Выводы

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

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

Вы можете просмотреть все доступные параметры команды du , набрав в терминале man du .

Если у вас есть вопросы или отзывы, оставьте комментарий ниже.

Оставьте комментарий