Как использовать команду du в Linux. Поиск файлов занимающих много места.
du (disk usage) — это мощный инструмент для оценки объёма дискового пространства, используемого данным файлом или каталогом.
Наверняка каждый сталкивался с ситуацией когда место на диске заканчивалось и необходимо было понять какие файлы и в каких каталога забили все место. На этот случай просто незаменимо уметь владеть утилитой du
. Рассмотрим ниже на примерах как ей пользоваться.
Синтаксис
Синтаксис команды du
выглядит следующим образом:
du [OPTION] [FILE or DIRECTORY NAME]
Параметры:
-0
: завершать каждую выходную строку значением null.-a
: вывод объема для всех файлов, а не только каталогов.-c
: указывает общий занимаемый размер-h
: вывод размеров занимаемого диска в удобном для человека формате-S
: не включать в вывод подкаталоги-s
: отображать только общее пространство, занимаемое каждым каталогом--time
: показывает время последней модификации любого файла или каталога--exclude
: исключает файл или каталог, совпадающие с шаблоном--exclude-from
: исключить файлы, совпадающие с любым шаблоном из файла
Использование
При вызове без аргументов du
(рекурсивно) отображает список всех каталогов, существующих в текущей позиции, вместе с информацией об использовании дискового пространства.
# du
14440 ./installer/cdebconf
15516 ./installer
4 ./sysstat
4 ./private
210088 ./journal/761a6416676a44b8b699c1dd4dbe8019
210092 ./journal
60 ./apt
4 ./runit/ssh
8 ./runit
226072 .
Чтобы отобразить объём в удобном для человека формате (K — килобайты, M — мегабайты и т. д.), используем параметр -h
вместе с командой du
.
# du -h
15M ./installer/cdebconf
16M ./installer
4,0K ./sysstat
4,0K ./private
206M ./journal/761a6416676a44b8b699c1dd4dbe8019
206M ./journal
60K ./apt
4,0K ./runit/ssh
8,0K ./runit
221M .
-b
, -m
или -k
.Чтобы отобразить только сводную информацию, используем параметр -s
. В сочетании с параметром -h
, отобразится информация в удобочитаемом виде.
# du -sh
221M .
Чтобы ограничить глубину поиска du
в структуре каталогов, можно использовать параметр -d
. При определении уровня глубины 1
будет исследоваться 1
каталог, при определении уровня глубины 2
— 2
каталога и так далее.
# du -d 1 /var/log
15516 /var/log/installer
4 /var/log/sysstat
4 /var/log/private
210092 /var/log/journal
60 /var/log/apt
8 /var/log/runit
226072 /var/log
Размер определенного каталога
Для определения размера определенного каталога.
# du -sh /run/
728K /run/
Размер нескольких каталогов
Можно вывести список размеров нескольких каталогов. В примере используется так же опция -c
, которая выводит сумму пространства, используемого указанными каталогами.
# du -sh -c /var/lib /var/www
221M /var/lib
2,0G /var/www
2,2G итого
Включая файлы и их размер
По умолчанию, в выводе команды du
отображаются только каталоги. Чтобы включить в вывод также стандартные файлы, можно использовать опцию -a
.
# du -ha
4,0K ./.cache/mc/Tree
8,0K ./.cache/mc
12K ./.cache
4,0K ./.lesshst
4,0K ./.local/share/mc/history
8,0K ./.local/share/mc
4,0K ./.local/share/nano/search_history
8,0K ./.local/share/nano
24K ./.local/share
28K ./.local
4,0K ./.wget-hsts
0 ./.sudo_as_admin_successful
8,0K ./.bash_history
4,0K ./.config/mc/ini
0 ./.config/mc/panels.ini
8,0K ./.config/mc
12K ./.config
4,0K ./.profile
4,0K ./.bashrc
4,0K ./.selected_editor
4,0K ./.gnupg/private-keys-v1.d
0 ./.gnupg/S.gpg-agent.ssh
0 ./.gnupg/S.gpg-agent.extra
0 ./.gnupg/S.gpg-agent.browser
4,0K ./.gnupg/trustdb.gpg
0 ./.gnupg/S.gpg-agent
12K ./.gnupg
4,0K ./.ssh
100K .
Исключение файлов
Есть два способа указать файлы и каталоги, которые следует исключить из вывода команды du
.
Способ #1
Использование опции --exclude
. Эта опция принимает в качестве аргумента шаблон. Все имена файлов и каталогов, соответствующие этому шаблону, будут исключены из вывода.
К примеру исключим из вывода файлы с расширением — log
.
du -ha --exclude=/var/log/*.log
--exclude
несколько раз.Способ #2
Использование опции -X
(--exclude-from
). Эта опция принимает в качестве аргумента имя файла, где в указанном файле указаны шаблоны для сопоставления (каждое сопоставление одно на строку).
du -ha --exclude-from=exclusions.txt
Сортировка
Чтобы отсортировать результаты вывода можно использовать команду sort
. Для сортировки по возрастанию используйте опцию -h
.
g# du -h | sort -h
4,0K ./private
4,0K ./runit/ssh
4,0K ./sysstat
8,0K ./runit
60K ./apt
15M ./installer/cdebconf
16M ./installer
206M ./journal
206M ./journal/761a6416676a44b8b699c1dd4dbe8019
221M .
Чтобы изменить порядок сортировки, используем опцию -r
:
# du -h | sort -hr
221M .
206M ./journal/761a6416676a44b8b699c1dd4dbe8019
206M ./journal
16M ./installer
15M ./installer/cdebconf
60K ./apt
8,0K ./runit
4,0K ./sysstat
4,0K ./runit/ssh
4,0K ./private
Tips & Tricks
Поиск самых больших файлов
Для поиска самых больших файлов, можно использовать команду find
вместе с du
с соответствующими опциями.
find / -type f -size +50M -exec du -h {} + | sort -hr
- где опция
-size +50M
для фильтрации файлов размером более 50 мегабайтов.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.