Введение
Команда du, сокращение от «использование диска», указывает примерный объем дискового пространства, используемого определенными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, которые занимают много места на диске.
Как использовать команду дю
Общий синтаксис команды du следующий:
du [OPTIONS]... DIR...
Если параметр DIR каталог, du подведет итог использования диска для каждого файла и подкаталога в этом каталоге. Если DIR не указан, du сообщит об использовании диска в текущем рабочем каталоге.
При запуске без параметров du отображает использование диска файлом или каталогом и каждым из его подкаталогов в байтах.
du ~/Documents
Вы также можете передать несколько файлов и каталогов в du в качестве аргументов:
du ~/Documents ~/Video ~/.zshrc
Если вы запустите du для файла или каталога, для которого у вас нет разрешения, вы получите что-то вроде «du: не удается прочитать каталог». В этой ситуации вам нужно будет добавить команду sudo.
du имеет много опций, мы опишем только те, которые используются чаще всего.
Параметр -a указывает чтобы сообщить об использовании дискового пространства каждым файлом в каталоге.
du -a ~/Documents
Обычно вам нужно только отобразить пространство, занимаемое указанным каталогом, в удобочитаемом формате. Для этого используйте параметр -h.
Например, чтобы получить общий размер всех подкаталогов /var/lib, выполните следующую команду:
sudo du -h /var
Мы используем sudo, потому что большинство файлов и каталогов в каталоге /var/lib принадлежат пользователю root и недоступны для чтения обычными пользователями. Вывод будет выглядеть следующим образом:
...
32K /var/lib/polkit-1
604M /var/lib
1.4G /var
Чтобы сообщить только общий размер указанного каталога, а не подкаталогов, используйте параметр -s:
sudo du -sh /var
1.4G /var
Опция -c позволяет вычислить общую сумму. Это полезно, когда вы хотите получить объединенный размер двух или более каталогов.
sudo du -csh /var/log /var/lib
670M /var/log
604M /var/lib
1.3G total
Если вы хотите просмотреть использование диска подкаталогами n-уровня, используйте параметр --max-depth и укажите уровень подкаталога. Например, чтобы получить отчет каталога верхнего уровня, вы должны использовать:
sudo du -h --max-depth=1 /var/lib
...
23M /var/lib/dpkg
4.0K /var/lib/misc
4.0K /var/lib/mysql-keyring
8.0K /var/lib/ureadahead
12K /var/lib/private
32K /var/lib/polkit-1
604M /var/lib
Поведение утилиты du по умолчанию заключается в повторном использовании дискового пространства, занятого каталогом или файлом. Чтобы узнать кажущийся размер файла, используйте параметр --apparent-size.«Видимый размер» файла — это то, сколько данных фактически содержится в файле.
sudo du -sh --apparent-size /var/lib
593M /var/lib
du также позволяет использовать шаблон оболочки. Например, чтобы получить размер всех каталогов, начинающихся с « li », вы должны запустить:
sudo du -csh /li*
479M /lib
4.0K /lib64
479M total
Дальнейшая команда с du
Команду du можно комбинировать с другими командами канала.
Например, чтобы напечатать 5 самых больших каталогов в каталоге /var, вы используете команду sort вместе с командой du для сортировки каталогов по их размеру, а затем перенаправляете вывод в команду head, которая будет печатать только 5 корневых каталогов:
sudo du -h /var/| sort -rh | head -5
1.4G /var/670M /var/log
604M /var/lib
561M /var/log/journal
553M /var/log/journal/3e8adc78daa34283b1c71dea860d53b4
Вывод
К настоящему времени вы должны хорошо понимать, как использовать команду du. В отличие от команды df, команда du обеспечивает оценку дискового пространства, используемого определенными файлами или каталогами.
Вы можете увидеть все параметры команды du, набрав man du в терминале.