Команда du в Linux

Опубликовано admin - пт, 06/10/2022 - 08:22

Использование стандартной команды Linux du очень удобно для определения объёма дискового пространства, занимаемого файлами и каталогами.

Команда du Linux

Команда имеет много опций и позволяет выводить результаты в различных форматах.

Содержание

Синтаксис

du [ПАРАМЕТР]… [ФАЙЛ]…

Суммирует использование набора ФАЙЛОВ устройства, рекурсивно с каталогами.

Опции

-a, --all
Печатать объём для всех файлов, а не только каталогов
-B, --block-size=РАЗМЕР
Использовать блоки указанного РАЗМЕРА; например, -BM выводит размеры в единицах, равных 1048576 байтам; см. формат РАЗМЕРА далее
-c, --total
Выводить общий итог
-D, --dereference-args
Следовать только по символьным ссылкам, которые перечислены в командной строке
-d, --max-depth=N
Выводить общий размер каталога (или файла, если --all) только для N-го или меньшего уровня чем указанный аргумент командной строки; значение --max-depth=0 аналогично указанию --summarize
-h, --human-readable
Печатать размеры в удобном для человека виде (например, 1K 234M 2G)
    --inodes
Вывести информацию об использованных инодах, а не о блоках
-L, --dereference
Разыменовывать символьные ссылки
-l, --count-links
Складывать размеры, если есть несколько жёстких ссылок
-P, --no-dereference
Не следовать по символьным ссылкам (по умолчанию)
-S, --separate-dirs
У каталогов не включать размер подкаталогов
    --si
Как -h, но использовать множитель 1000, а не 1024
-t, --threshold=РАЗМЕР
Исключить элементы, которые меньше РАЗМЕРА, если это значение положительно, или размер которых больше, если это значение отрицательно
    --time
Показывать время последнего изменения файлов в каталоге или во всех его подкаталогах
-X, --exclude-from=ФАЙЛ
Исключить файлы, совпадающие с любым шаблоном из ФАЙЛа
-x, --one-file-system
Пропускать каталоги из других файловых систем

РАЗМЕР задаётся целым числом и необязательной единицей измерения (пример: 10K это 10*1024). Единицы измерения: K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000). Также можно использовать двоичные префиксы: KiB=K, MiB=M и так далее.

Примеры использования du

Список подкаталогов в определённом каталоге и занимаемое ими место:

oleg@mobile:~/store/distros:$ du -h ~/store/distros/
2,8G    /home/oleg/store/distros/manjaro
6,3G    /home/oleg/store/distros/kali
4,0K    /home/oleg/store/distros/archlinux/iso
8,0K    /home/oleg/store/distros/archlinux
4,0K    /home/oleg/store/distros/slackware/slackware64-14.2-iso
8,0K    /home/oleg/store/distros/slackware
4,0K    /home/oleg/store/distros/lost+found
2,7G    /home/oleg/store/distros/ubuntu
3,1G    /home/oleg/store/distros/backtrack
15G    /home/oleg/store/distros/

Опция -h позволяет выводить размер в удобном для человека виде.

Вывод размеров не только подкаталогов, но и находящихся в ни файлов:

oleg@mobile:~/store/distros:$ du -ha ~/store/distros/
9,6M    /home/oleg/store/distros/manjaro/Manjaro-User-Guide.pdf
2,8G    /home/oleg/store/distros/manjaro/manjaro-xfce-20.2.1-210103-linux59.iso
2,8G    /home/oleg/store/distros/manjaro
3,5G    /home/oleg/store/distros/kali/kali-linux-2022.2-live-amd64.iso
2,8G    /home/oleg/store/distros/kali/kali-linux-2022.2-installer-amd64.iso
6,3G    /home/oleg/store/distros/kali
4,0K    /home/oleg/store/distros/archlinux/iso
8,0K    /home/oleg/store/distros/archlinux
4,0K    /home/oleg/store/distros/slackware/slackware64-14.2-iso
8,0K    /home/oleg/store/distros/slackware
4,0K    /home/oleg/store/distros/lost+found
2,7G    /home/oleg/store/distros/ubuntu/ubuntu-20.04.2.0-desktop-amd64.iso
4,0K    /home/oleg/store/distros/ubuntu/SHA256SUMS
4,0K    /home/oleg/store/distros/ubuntu/SHA256SUMS.gpg
2,7G    /home/oleg/store/distros/ubuntu
3,1G    /home/oleg/store/distros/backtrack/BT5R3-GNOME-64.iso
3,1G    /home/oleg/store/distros/backtrack
15G    /home/oleg/store/distros/

Для этого было достаточно добавления опции -a.

Вывод общего размера файлов и каталогов:

oleg@mobile:~/store/distros:$ du -hs ~/store/distros/
15G    /home/oleg/store/distros/

Для этого вместо -a была использована опция -s.

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

Команда Linux du может быть объединена с другими командами с помощью pipeline (трубопровода).

Например, вы решили вывести на экран три крупнейших подкаталога:

oleg@mobile:~:$ sudo du -h /var/lib | sort -hr | head -3
764M    /var/lib
709M    /var/lib/mysql
317M    /var/lib/mysql/linuxcookbookru

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

Выводы

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

Поделиться с друзьями