LinuxRuLinux без лишней теории
Утилита терминала

Duf в Linux: удобная проверка дисков вместо df

Редакция LinuxRu6 мин чтенияИнструкции

Duf в Linux показывает занятое и свободное место на всех дисках в виде цветных таблиц и ставится одной командой из репозитория. Ниже установка для разных дистрибутивов, разбор вывода, полезные фильтры, проверка inodes и JSON-режим для скриптов.

Duf в Linux: удобная проверка дисков вместо df
Содержание
  1. Что умеет duf
  2. Установка
  3. Как читать вывод
  4. Параметры
  5. Фильтры и сортировка
  6. JSON и скрипты
  7. Если что-то не так
  8. Частые вопросы

Duf вместо df: что умеет утилита

Duf (Disk Usage/Free) - консольная утилита на Go от Christian Muehlhaeuser, которая показывает то же, что и df, только по-человечески. Файловые системы разбиты на группы, размеры сразу в гигабайтах, заполненность нарисована цветной полосой, а сортировка и фильтры задаются понятными словами вместо длинных цепочек grep и awk.

Проект жив: последний выпуск на момент написания - 0.9.1 (сентябрь 2025), пакет есть в официальных репозиториях Debian, Ubuntu, Fedora и Arch. Работает в Linux, BSD, macOS и Windows.

Чего duf не делает: он не ищет, какие каталоги съели место. Это задача du и ncdu, о них подробно в статье как освободить место на диске. Duf отвечает на вопрос где кончается место, а не кто его занял.

Установка duf в 2026 году

Самостоятельная сборка из исходников и ручное скачивание deb-пакета, как советовали в 2021 году, больше не нужны. Ставьте из репозитория своего дистрибутива:

# Debian 12 и 13, Ubuntu 22.04 и новее, Linux Mint
sudo apt install duf
# Fedora 44
sudo dnf install duf
# Arch Linux и производные
sudo pacman -S duf
# openSUSE
sudo zypper install duf

Проверить установку и версию:

duf --version

Если в репозитории старая версия, а нужна свежая, на странице релизов проекта лежат готовые пакеты deb и rpm для amd64 и arm64. Скачанный пакет ставится через пакетный менеджер, чтобы он сам проверил зависимости:

sudo apt install ./duf_0.9.1_linux_amd64.deb
sudo dnf install ./duf_0.9.1_linux_amd64.rpm

Имя файла сверяйте со страницей релизов: версия и архитектура в нём меняются. Сборка из исходников теперь требует Go 1.23 или новее и нужна разве что разработчикам. Общие способы установки программ, включая сторонние пакеты, разобраны в отдельной инструкции.

Первый запуск и как читать таблицы

Достаточно набрать duf без параметров.

Вывод команды duf в терминале: таблицы локальных и специальных устройств с полосами заполненности
Обычный вывод duf: локальные диски отдельно, служебные файловые системы отдельно

Утилита рисует несколько таблиц по типам устройств:

  • local - разделы ваших дисков: корень, /home, /boot/efi;
  • network - сетевые ресурсы NFS, SMB, SSHFS;
  • fuse - файловые системы в пространстве пользователя, например смонтированные облака или AppImage;
  • special - tmpfs, devtmpfs и прочие файловые системы в памяти;
  • loops и binds - образы и привязанные каталоги, по умолчанию часть из них скрыта.

Цвет полосы зависит от порогов. По умолчанию заполненность до 50% зелёная, до 90% жёлтая, дальше красная. Столбец свободного места желтеет, если осталось меньше 10 ГБ, и краснеет при остатке меньше 1 ГБ. Пороги легко сдвинуть, об этом ниже.

Чтобы увидеть конкретный раздел или каталог, передайте путь. Duf покажет файловую систему, на которой этот путь лежит:

duf /home
duf / /boot/efi
duf ~/Загрузки

Основные параметры duf

Полный список выводит duf --help. Обратите внимание: в исходной статье параметры были набраны с длинным тире вместо двух дефисов, так они не работают. Пишите длинные параметры через два дефиса: --all, --sort. Старая запись с одним дефисом вроде -all в текущих версиях не сработает, потому что duf разбирает параметры в стиле GNU.

Справка duf --help со списком параметров командной строки
Справка по параметрам открывается командой duf --help
ПараметрЧто делаетПример
--allпоказывает псевдо, дублирующиеся и недоступные ФСduf --all
--only, --hideфильтр по группе: local, network, fuse, special, loops, bindsduf --only local
--only-fs, --hide-fsфильтр по типу файловой системыduf --hide-fs tmpfs,vfat
--only-mp, --hide-mpфильтр по точке монтирования, понимает шаблоныduf --only-mp /,/home
--sortсортировка по столбцуduf --sort usage
--outputвыбор столбцовduf --output mountpoint,size,avail
--inodesиндексные дескрипторы вместо блоковduf --inodes
--theme, --styleцвета dark, light, ansi и рамки unicode или asciiduf --style ascii
--avail-threshold, --usage-thresholdпороги подсветкиduf --usage-threshold 0.7,0.95
--jsonвывод в JSON для скриптовduf --json
--widthмаксимальная ширина таблицыduf --width 100

Ключ --all выдаёт длинную простыню из cgroup, proc и прочих служебных систем. Он полезен, когда нужно понять, что вообще смонтировано, например при поиске зависшего сетевого ресурса.

Вывод duf --all со всеми смонтированными файловыми системами, включая служебные
С ключом --all видно всё, что смонтировано в системе

Фильтры, сортировка и столбцы на практике

Несколько сочетаний, которые закрывают большинство задач:

# только реальные диски, самые заполненные сверху
duf --only local --sort usage
# скрыть снапы, флешки и временные ФС
duf --hide-fs squashfs,tmpfs,vfat
# все точки монтирования внутри /mnt, шаблон в кавычках
duf --only-mp '/mnt/*'
# компактная таблица для узкого терминала
duf --output mountpoint,size,avail,usage --width 80

Допустимые имена столбцов для --sort и --output: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem.

Отдельно про индексные дескрипторы. На ext4 их количество задаётся при создании файловой системы, и они могут закончиться раньше места: диск показывает свободные гигабайты, а файлы не создаются с ошибкой No space left on device. Проверка занимает секунду:

duf --inodes --only local

Если столбец inodes_usage близок к 100%, ищите каталог с миллионами мелких файлов: кэш, сессии PHP, старые письма. Параметры ext4, включая резерв для root, меняются через tune2fs.

Чтобы не набирать фильтры каждый раз, заведите псевдоним в ~/.bashrc: alias dfl='duf --only local --sort usage'. Подменять сам df не стоит: скрипты и инструкции рассчитывают на его привычный вывод. Как устроены псевдонимы, рассказано в статье про aliases.

JSON-вывод: duf в скриптах и мониторинге

Ключ --json выводит массив объектов с полями device, mount_point, fs_type, type, total, free, used, inodes, inodes_free и другими. Размеры в байтах. Вместе с jq из этого получается простая проверка свободного места:

sudo apt install jq   # или dnf install jq, pacman -S jq
duf --json | jq '.[] | select(.mount_point=="/") | .free'

Небольшой скрипт, который предупредит, если на корне осталось меньше 10 ГБ. Его можно повесить на таймер systemd или cron:

#!/bin/sh
free=$(duf --json | jq '.[] | select(.mount_point=="/") | .free')
limit=$((10 * 1024 * 1024 * 1024))
if [ "$free" -lt "$limit" ]; then
    notify-send "Мало места" "На / осталось меньше 10 ГБ"
fi

Для серверов вместо notify-send подставьте отправку в журнал через logger или в свой мессенджер. Как запускать такие проверки по расписанию, описано в статье про cron и таймеры systemd.

Частые вопросы при работе с duf

Не видно флешки или сетевого диска

Сначала убедитесь, что устройство вообще смонтировано: findmnt или lsblk -f. Duf показывает только смонтированные файловые системы. Неразмеченный диск он не увидит, для этого нужны инструменты разметки из статьи о разделах и файловых системах.

Цифры отличаются от df

Duf считает в двоичных единицах (ГиБ), а df -H в десятичных. Плюс на ext4 часть места зарезервирована для root, и обычный пользователь видит её как занятую. Сравнивайте с df -h, тогда расхождения почти исчезнут.

Ломаются рамки и цвета

В консоли без поддержки Unicode или при выводе в файл включайте --style ascii и --theme ansi. Для логов удобнее сразу --json.

Частые вопросы

Чем duf отличается от df?

Показывает те же данные, но группирует файловые системы по типам, рисует полосы заполненности и умеет фильтровать и сортировать без grep и awk. Есть JSON-вывод.

Показывает ли duf размер папок?

Нет. Duf работает с файловыми системами целиком. Для размеров каталогов используйте du или ncdu.

Нужен ли Go для установки duf?

Нет. Пакет есть в репозиториях Debian, Ubuntu, Fedora и Arch, Go нужен только для сборки из исходников.

Как показать только реальные диски?

Команда duf --only local. Добавьте --sort usage, чтобы самые заполненные разделы были сверху.

Почему место есть, а файлы не создаются?

Возможно, закончились индексные дескрипторы. Проверьте командой duf --inodes.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.