ncdu — это не абстрактная утилита для очистки, а очень конкретный и практичный анализатор использования диска с текстовым интерфейсом. Программа показывает, чем занято место на диске, позволяет быстро проваливаться по дереву каталогов, сортировать содержимое по размеру, смотреть скрытые и исключённые элементы, переключаться между реальным расходом блоков и apparent size, а при необходимости — удалять файлы и каталоги прямо из интерфейса.
Главная сила ncdu в том, что она совмещает скорость консольного инструмента и удобство навигации, которого обычно не хватает обычному du. Вместо длинных простыней текста пользователь получает полноценный браузер директорий: можно пройти внутрь тяжёлой папки, отсортировать содержимое, включить дополнительную колонку с количеством дочерних элементов, посмотреть время изменения, вызвать окно Item info, обновить текущую директорию или открыть shell из текущего пути. Для задач вроде почему закончилось место на /, где лежат самые большие логи, что занимает объём в /var, какая папка разрослась в /home или как быстро найти большие файлы в Linux через терминал это один из самых удобных инструментов в своём классе.
Скачать ncdu
- Оптимизация системы
- Очистка мусора
- Ускорение ПК
- Командная строка
- Сложно новичкам
- Нет GUI-интерфейса
Что представляет собой ncdu на практике
Название ncdu раскрывается как NCurses Disk Usage. Перед нами анализатор дискового пространства с текстовым интерфейсом на базе curses, рассчитанный на быструю работу в терминале. Программа особенно хороша в ситуациях, когда графической оболочки нет вообще, когда подключение идёт по SSH, когда сервер слабый, а задача очень приземлённая: быстро найти пожирателей места, понять структуру занятого объёма и принять решение — удалить, перенести, архивировать или просто зафиксировать проблему.
ncdu не пытается быть всем сразу. Это не пакетный оптимизатор системы, не твикер, не универсальный файловый менеджер и не программа с десятками модулей для очистки кэшей браузеров, реестра или приложений. Она решает другую задачу: анализ использования диска. Причём решает её очень прямо — сканирует дерево файловой системы, считает объём, отображает каталоги и файлы в удобной иерархии и позволяет интерактивно дойти до источника проблемы.
Это важно понимать заранее. Когда пользователю нужен именно поиск больших файлов и папок в Linux, ncdu почти всегда оказывается полезнее, чем универсальные чистильщики. Когда же требуется автоматическая уборка по шаблонам, поиск дублей, работа с медиатекой или визуальная sunburst-диаграмма, тогда логичнее смотреть уже на другой класс программ. В пределах своей ниши ncdu работает очень предметно и почти без лишних действий.
Где ncdu особенно полезна
У ncdu есть несколько сценариев, в которых она раскрывается лучше всего.
Когда внезапно кончилось место на разделе
Классическая ситуация: система пишет No space left on device, контейнеры перестают стартовать, логи не пишутся, обновления не ставятся. В такой момент нужно не гадать, а увидеть реальную картину. Команда ncdu -x / запускает сканирование корневой файловой системы без перехода на другие смонтированные файловые системы. Это очень практичный сценарий, потому что анализ остаётся в пределах нужного раздела и не расползается на отдельные mount point.
Когда нужно быстро разобрать /var, /home, /srv или каталог проекта
Для повседневной диагностики часто не нужен анализ всего диска. Достаточно пройтись по проблемной области: ncdu /var, ncdu /home, ncdu /srv/app, ncdu ~/Downloads. Дальше уже внутри интерфейса видно, какая подпапка съедает объём: кэш, архивы, билд-артефакты, Docker-слои, node_modules, дампы баз, резервные копии, старые медиафайлы или давно забытые tar-архивы. Буквально в несколько нажатий становится понятно, чем занято место на диске Linux и где именно искать кандидатов на очистку.
Когда работа идёт по SSH и нужна минимальная задержка
ncdu изначально хорошо подходит для удалённых систем. Она умеет экспортировать результаты сканирования и затем открывать их отдельно. Более того, есть очень удобный сценарий: удалённая машина сканирует файловую систему, а просмотр идёт локально через импорт потока. В таком режиме навигация уже не страдает от сетевой задержки, а на самой удалённой машине не приходится держать весь просмотр в интерактивном режиме. Для администратора, который часто работает с серверами по SSH, это одна из самых сильных сторон программы.
Когда нужна не просто сводка, а интерактивный разбор структуры
Многие консольные команды умеют показать размеры каталогов. Но ncdu делает следующий шаг: она даёт интерактивный просмотр. Можно войти в папку, выйти обратно, переключить сортировку по имени или размеру, включить или скрыть проценты и граф, посмотреть время изменения, вызвать подробную карточку объекта, обновить текущую директорию после внешних действий и даже открыть shell прямо в текущем каталоге. Для живого исследования структуры данных это намного удобнее обычного списка, полученного из du | sort.
Установка и первый запуск
На Linux и других POSIX-подобных системах ncdu обычно ставится из стандартных репозиториев под тем же именем — ncdu. Пакет есть в репозиториях Fedora и Arch Linux, а на macOS утилита доступна через Homebrew. Для рабочего сервера это означает простую установку привычным менеджером пакетов без обходных схем и без графической среды.
Типовые команды установки выглядят так:
sudo dnf install ncdusudo pacman -S ncdubrew install ncdu
После установки базовый запуск предельно прямой:
ncdu
Эта команда сканирует текущую директорию и затем открывает интерактивный текстовый интерфейс. Для полного раздела чаще используют такой вариант:
ncdu -x /
Ключ -x здесь очень важен: программа не переходит через границы файловых систем и считает только то, что относится к текущему разделу. Когда задача состоит в анализе занятого места именно на конкретной файловой системе, без этого флага картина легко размывается дополнительными mount point.
Во время сканирования ncdu может работать в разных режимах интерфейса. -0 вообще не показывает прогресс до завершения, -1 пишет прогресс в терминал без полноэкранного интерфейса, а -2 ведёт полноценный full-screen-показ во время сканирования и импорта. Если нужен живой контроль процесса, -2 — самый удобный вариант; если важна тишина, под экспорт или cron логичнее -0; если хочется видеть ход сканирования, но без полноэкранного TUI, подходит -1.
Как выглядит этап сканирования

На этапе сканирования ncdu показывает экран Loading..., общий счётчик объектов, накопленный размер и путь к текущему обрабатываемому элементу. Для больших деревьев каталогов это полезно не только как индикатор жизни, но и как быстрый способ понять, в какой части файловой системы программа сейчас находится. Скриншот выше как раз демонстрирует типичную логику окна во время обхода.
Интерфейс ncdu: что именно видно на экране
После завершения сканирования ncdu открывает главное окно со списком файлов и каталогов в текущем пути. Это основной рабочий экран программы, и он устроен очень рационально: размер, относительный граф, проценты, имя объекта, при необходимости — количество дочерних элементов, время изменения и отдельная колонка shared/unique size для каталогов с жёсткими ссылками. Внизу выводится суммарная статистика текущего каталога: total disk usage, apparent size и количество items.
Основной экран после сканирования

На этом экране сразу видно, какие каталоги занимают больше всего места. Сверху отображается текущий путь, ниже — список элементов, где крупнейшие обычно находятся первыми при сортировке по размеру. Такой экран и делает ncdu удобной программой для поиска больших папок в Linux: пользователь не читает сухой отчёт, а буквально идёт вниз по проблемному дереву, от крупнейшего каталога к источнику расхода диска.
Из каких частей состоит интерфейс
Ниже — краткая расшифровка основных элементов рабочего окна.
| Элемент интерфейса | Что показывает |
|---|---|
| Строка пути вверху | Текущий каталог, в котором вы находитесь |
| Левая колонка размера | Реальный расход дисковых блоков или apparent size |
| Графическая полоса | Относительный размер элемента по отношению к самому крупному объекту в текущем списке |
| Проценты | Доля относительно текущего каталога |
| Имя файла/каталога | Название элемента |
| Child item counts | Количество дочерних элементов, если колонка включена |
| Mtime | Время изменения, если включён extended mode |
| Нижняя строка статуса | Total disk usage, apparent size, items |
Набор колонок не зафиксирован навсегда. ncdu позволяет включать и выключать проценты, граф, child item count, mtime и shared/unique column прямо в браузере файлов. Это важная особенность: интерфейс можно быстро подстроить под задачу. Когда вы ищете именно объём, важнее размер и проценты; когда анализируете подозрительно разросшийся каталог, полезно видеть число вложенных элементов; когда разбираете свежие логи или артефакты сборки, удобно сортировать и показывать mtime.
Флаги объектов в списке
У ncdu есть система коротких флагов, которые появляются перед именами элементов. Они очень полезны, потому что сразу объясняют, что именно перед вами.
| Флаг | Значение |
|---|---|
! |
Ошибка чтения этого каталога |
. |
Ошибка чтения подкаталога, итоговый размер может быть неточным |
< |
Элемент исключён из статистики через exclude pattern |
> |
Каталог находится на другой файловой системе |
^ |
Каталог исключён как Linux pseudo filesystem |
@ |
Это не обычный файл и не каталог: symlink, socket и т.п. |
H |
Тот же файл уже был учтён как hard link |
e |
Пустой каталог |
Эти маркеры особенно важны при разборе сложной структуры. Если пользователь видит в списке >, он сразу понимает, что наткнулся на точку монтирования другой файловой системы; если видит <, значит элемент отображается, но не участвует в статистике; если появляется ! или ., значит где-то были проблемы доступа или чтения, и цифры стоит трактовать осторожно. Для диагностики на сервере это гораздо полезнее, чем просто молчаливое что-то не посчиталось.
Горячие клавиши и навигация
Одна из причин популярности ncdu — очень удачно подобранное управление. Внутри программы почти всё делается с клавиатуры, причём логика быстро запоминается.
Базовая навигация
| Клавиша | Действие |
|---|---|
↑ / ↓ |
Перемещение по списку |
j / k |
Перемещение по списку в стиле vim |
→, Enter, l |
Открыть выбранный каталог |
←, <, h |
Перейти в родительский каталог |
q |
Выйти из программы |
? |
Открыть help + keys + about screen |
Этого уже достаточно, чтобы полноценно исследовать дерево каталогов. Но реальная сила ncdu раскрывается дальше — в клавишах, которые меняют способ отображения и помогают разбирать диск быстрее.
Сортировка и переключение представления
| Клавиша | Что делает |
|---|---|
n |
Сортировка по имени |
s |
Сортировка по размеру |
C |
Сортировка по количеству элементов |
M |
Сортировка по latest child mtime / modified time |
a |
Переключение между disk usage и apparent size |
t |
Директории перед файлами |
g |
Проценты, граф, оба варианта или скрыть оба |
u |
Переключение shared / unique size column |
c |
Показать или скрыть child item counts |
m |
Показать или скрыть mtime |
e |
Показать или скрыть hidden / excluded items |
Практически это означает, что ncdu умеет показывать картину под разным углом. Например, в одном сценарии нужен реальный расход блоков, в другом — логический размер файла; иногда полезно видеть именно количество дочерних элементов, а не только общий объём; в больших древовидных каталогах иногда удобнее сортировать по времени изменения, чтобы быстро выйти на недавно разросшийся участок. Всё это встроено в браузер и не требует повторного запуска.
Информационные и сервисные действия
| Клавиша | Что делает |
|---|---|
i |
Открывает окно Item info по выделенному объекту |
r |
Refresh / recalculate current directory |
b |
Запускает shell в текущем каталоге |
d |
Удаляет выбранный файл или каталог |
Именно эта четвёрка делает ncdu не просто просмотрщиком, а рабочим инструментом. i помогает уточнить контекст объекта, r пересчитывает текущую директорию после внешних изменений, b позволяет сразу перейти к действию из нужной точки файловой системы, а d превращает анализ в практическую уборку, если вы точно понимаете, что удаляете.
Экран помощи

По клавише ? открывается экран помощи, в котором собраны клавиши, формат отображения и информация о программе. Это удобная встроенная шпаргалка: если вы давно не запускали ncdu или пользуетесь ей на редкой машине, все основные действия доступны прямо из интерфейса без обращения к внешней документации.
Практический сценарий: как с помощью ncdu найти, что съедает место
Теперь самое важное — как ncdu ведёт себя в реальной работе, когда задача звучит максимально приземлённо: найти, что занимает место на диске.
Шаг 1. Запустить анализ там, где проблема действительно есть
Если нет уверенности, какой именно раздел переполнен, удобно начать с корня:
ncdu -x /
Если проблема уже локализована, лучше сразу идти точечно:
ncdu /varncdu /homencdu /srvncdu ~/Downloads
Такой подход ускоряет работу и делает обзор конкретнее. Нет смысла сканировать весь сервер, если вы и так подозреваете /var/log, каталог резервных копий или директорию проекта.
Шаг 2. Оставить сортировку по размеру
По умолчанию ncdu и так отлично подходит для анализа дискового пространства именно через размер, но если сортировка была переключена, верните её клавишей s. Дальше логика очень простая: самый тяжёлый элемент находится выше, вы заходите в него и повторяете путь до тех пор, пока не выйдете на конкретную папку или файл, который действительно съедает место.
Это и есть главное отличие ncdu от сухих текстовых отчётов. Пользователь не ищет по глазам в большом списке, не пересобирает вручную несколько команд и не теряет контекст. Он просто последовательно спускается вниз по дереву, каждый раз заходя в самый тяжёлый сегмент. В результате очень быстро обнаруживаются каталоги вроде logs, cache, tmp, backups, build, dist, target, node_modules, vendor, архивы дампов и прочие классические пожиратели пространства.
Шаг 3. При необходимости включить дополнительные подсказки
Когда в каталоге много объектов схожего размера, удобно включить:
-
c, чтобы видеть количество дочерних элементов -
m, чтобы показать время изменения -
g, чтобы оставить проценты и граф одновременно -
a, чтобы сравнить disk usage и apparent size
Это особенно полезно в ситуациях, когда место уходит не от одного огромного архива, а от десятков тысяч мелких файлов, когда каталог внешне не выглядит тяжёлым, но в нём безумное число вложенных элементов, или когда нужно понять, что происходит с sparse-файлами и другими случаями, где логический размер и реальный расход блоков отличаются.
Шаг 4. Проверить скрытые и исключённые элементы
Клавиша e переключает показ hidden и excluded items. Тут есть важный нюанс: даже если скрытые или исключённые элементы не видны на экране, они всё равно продолжают входить в размеры директорий. Поэтому если кажется, что сумма дочерних папок не бьётся с общим итогом, первым делом имеет смысл проверить, не скрыты ли части дерева через e. Это довольно частая ситуация при анализе больших домашних директорий, рабочих окружений и репозиториев.
Шаг 5. Посмотреть подробности по подозрительному объекту
Когда найден тяжёлый каталог или непонятный файл, полезно нажать i. Откроется окно Item info, где ncdu показывает имя, путь, тип и значения для Disk usage и Apparent size. На практике это помогает быстро проверить гипотезу: например, вы видите тяжёлую папку и сразу понимаете, где именно она лежит и чем отличается её логический размер от реального.
Окно Item info

Окно Item info хорошо показывает философию ncdu: никаких лишних панелей и сложных мастеров, только конкретная карточка выбранного объекта с теми данными, которые реально нужны при анализе использования диска. Когда вы исследуете крупное дерево и хотите быстро проверить точный путь, тип объекта и соотношение Disk usage / Apparent size, это один из самых удобных элементов интерфейса.
Шаг 6. Сразу перейти к действиям
Если после анализа вы понимаете, что объект нужно обработать прямо сейчас, есть два пути.
Первый — клавиша b. Она запускает shell в текущем каталоге. Это удобно, когда хочется не удалять вслепую, а сначала сделать ещё пару команд, открыть каталог, переместить файлы, сжать архив, посмотреть содержимое, запустить ls -lah, find, tar или собственный скрипт. ncdu определяет shell через NCDU_SHELL или SHELL, а если переменные не заданы — использует /bin/sh. Благодаря этому клавишу b можно использовать даже для вызова другой программы вместо обычного shell.
Второй путь — клавиша d. Она удаляет выбранный файл или каталог. Это уже прямое действие по освобождению диска. В программе предусмотрено подтверждение удаления, а после завершения операции ncdu корректирует in-memory view и размер директорий. То есть пользователь не просто удаляет объект, но и сразу видит, как меняется картина пространства.
Удаление в ncdu и безопасная работа
Удаление — одна из самых сильных и одновременно самых чувствительных функций ncdu. Многие утилиты для анализа диска показывают цифры, но заставляют пользователя отдельно открывать второй инструмент для очистки. Здесь всё в одном интерфейсе: нашли проблему, выделили элемент, нажали d, подтвердили действие и сразу увидели результат.
Как выглядит подтверждение удаления

Диалог Confirm delete появляется перед удалением и защищает от случайного нажатия. В интерфейсе есть подтверждение действия, и это очень правильное решение: в ncdu пользователь обычно работает с большими объёмами данных, а ошибка здесь может стоить дорого. Поэтому для живой файловой системы разумный сценарий такой: сначала анализ, потом точечная проверка, и только потом удаление.
Когда полезен read-only режим
Если задача — только аудит, без малейшего риска что-то изменить, ncdu умеет read-only режим через -r. Один -r отключает удаление, а двойной -r -r дополнительно отключает запуск shell, то есть в пределах программы вообще не остаётся способов изменить файловую систему. Для проверок на production-серверах, для чужих машин, для аудита после инцидента или просто в тех случаях, когда вы хотите гарантированно ничего не тронуть, это очень полезная опция.
Примеры:
ncdu -r /ncdu -r -r /var
Кастомная команда удаления
У ncdu есть ещё одна важная возможность: стандартное удаление можно заменить своей shell-командой через --delete-command. Это открывает очень практичные сценарии. Например, вместо жёсткого удаления можно отправлять файлы в корзину через gio trash --, либо использовать rm -ri --, чтобы получать дополнительное интерактивное подтверждение на уровне команды. После выполнения пользовательская команда так же отражается в интерфейсе: текущий объект обновляется, размеры директорий пересчитываются.
Примеры:
ncdu --delete-command 'gio trash --'ncdu --no-confirm-delete --delete-command 'rm -ri --'
Это одна из тех функций, из-за которых ncdu особенно нравится людям, привыкшим собирать себе удобный рабочий процесс в терминале. Программа даёт не только браузер директорий, но и нормально встраивается в уже существующие привычки администратора или разработчика.
Disk usage и apparent size: почему в ncdu это важно
Одна из часто недооцениваемых особенностей ncdu — переключение между disk usage и apparent size клавишей a или через опции --disk-usage и --apparent-size. В реальной диагностике это не косметика, а полезный способ посмотреть на файловую систему под другим углом.
Disk usage показывает именно то, сколько пространства реально занято на диске. Apparent size показывает логический размер файла или каталога. В простых случаях различий почти нет, но в сложных сценариях — sparse-файлы, особенности хранения, жёсткие ссылки, отдельные служебные объекты — разница может быть важной. Когда человек ищет, чем занято место на диске Linux, ему чаще нужен именно disk usage; когда он пытается понять, насколько тяжёлым выглядит набор данных логически, полезно посмотреть и apparent size. ncdu позволяет переключаться между этими взглядами мгновенно, без нового сканирования.
Расширенный режим и работа со временем изменения
Для более глубокого анализа у ncdu есть extended mode: -e или --extended. В этом режиме программа дополнительно читает владельца, права и mtime для каждого файла. Это увеличивает потребление памяти и размер экспортируемых данных, зато открывает более содержательную аналитику.
На практике extended mode полезен в двух сценариях.
Первый — когда вы хотите видеть колонку времени изменения и переключать её клавишей m. Это помогает при поиске свежих логов, недавних дампов, новых артефактов сборки, внезапно появившихся кэшей и других недавно разросшихся сущностей. Второй — когда нужно сортировать по latest child mtime клавишей M. В этом режиме можно быстро выйти на директории, внутри которых что-то изменялось последним, даже если по абсолютному размеру они не первые в списке.
Хороший пример использования:
ncdu -e /var
После этого стоит включить m и попробовать сортировку M. При разборе журналов, временных каталогов и рабочих директорий такой способ часто даёт более точный ответ, чем простая сортировка по объёму.
Исключения, скрытые элементы и тонкая настройка сканирования
ncdu умеет не просто читать всё подряд, а вполне аккуратно фильтровать дерево.
Ограничение одной файловой системой
Ключ -x уже упоминался выше, но для практики это один из важнейших переключателей. Он запрещает пересечение границ файловых систем. То есть, если вы анализируете /, программа не начнёт учитывать содержимое других разделов, смонтированных внутрь дерева. При анализе использования диска на серверах этот флаг почти всегда нужен.
Исключения по шаблонам
Опция --exclude pattern исключает совпавшие элементы из статистики. Они по-прежнему отображаются по умолчанию, но не входят в расчёт дискового использования. Паттернов может быть несколько. Аналогично работает -X или --exclude-from file, только шаблоны берутся из файла, по одному на строку. Это удобно, когда нужно игнорировать, например, .git, каталоги сборки, кэши, временные деревья или иные области, которые мешают сделать целевой анализ.
Пример:
ncdu --exclude .git --exclude node_modules .
Работа с cache directories и pseudo filesystems
ncdu умеет отдельно учитывать каталоги с CACHEDIR.TAG, а также Linux pseudo filesystems. Это уже деталь поведения, которая особенно важна на системах с большим количеством служебных областей. Для пользователя это означает, что программу можно тонко настроить под конкретный контекст: чистый анализ пользовательских данных, аудит рабочего дерева или аккуратный разбор системной структуры без мусорных и технических областей.
Экспорт, импорт и работа со снимками дерева
Очень сильная сторона ncdu — умение отделять сканирование от просмотра. Если каталог или файловая система большие, не обязательно каждый раз запускать полный интерактивный анализ заново. Программа умеет экспортировать дерево в JSON через -o и в бинарный формат через -O, а затем загружать эти данные через -f.
Когда это реально полезно
Самые типичные сценарии такие:
-
длительное сканирование ночью, разбор результатов позже
-
аудит сервера без постоянного живого подключения
-
сравнение структуры до и после чистки
-
выгрузка результатов в cron
-
удалённое сканирование с локальным просмотром
-
работа с очень большими деревьями каталогов
Если дерево огромное, особенно полезен бинарный формат -O: он имеет встроенное сжатие, поддерживает многопоточный экспорт с меньшими затратами памяти и позволяет просматривать структуру без полной загрузки всего дерева в память. JSON остаётся более простым форматом для внешних инструментов и интеграций, но для больших массивов данных бинарный формат в самой ncdu выглядит практичнее.
Базовые сценарии с экспортом
ncdu -1xO export.ncdu /ncdu -f export.ncdu
В первой команде программа сканирует корневую файловую систему, пишет прогресс без полноэкранного интерфейса и сохраняет результат в бинарный файл export.ncdu. Во второй — просто открывает этот снимок. Такой режим очень удобен, когда сканирование долгое, а разбирать дерево хочется спокойно и отдельно.
Для JSON-экспорта используются:
ncdu -o export.json /ncdu -f export.json
А если экспорт большой, для JSON доступно ещё и Zstandard-сжатие через -c, тогда размер данных заметно уменьшается. Для бинарного экспорта сжатие встроено изначально.
Удалённое сканирование и локальный просмотр
Один из лучших сценариев в ncdu выглядит так:
ssh user@system ncdu -co- / | ncdu -f-
Смысл здесь очень практичный. Удалённая система занимается сканированием и экспортом, а локальная машина открывает поток как импортированный снимок. В результате навигация уже идёт локально, без сетевой задержки, а удалённой машине не нужно держать весь интерактивный сеанс. Для диагностики по SSH это едва ли не идеальный компромисс между скоростью, удобством и экономией ресурсов.
Есть и гибридный вариант, когда экспорт одновременно сохраняется и тут же открывается:
ncdu -co- | tee export.json.zst | ncdu -f-
Это удобно, если нужен и живой просмотр, и сохранённый результат для повторного анализа.
Важное ограничение импортированных снимков
Когда ncdu открывает данные из файла через -f, программа считает, что импортируемое дерево не является живой файловой системой в текущем состоянии. Поэтому refresh, file deletion и shell spawning в браузере отключаются. Это логичное ограничение: снимок нужен для анализа, а не для действий над реальным FS. Как только нужен живой режим с удалением и пересчётом — программу нужно запускать на реальной директории.
Производительность, память и особенности поведения
ncdu ценят за скорость и за то, что она остаётся удобной даже на очень земных серверах без графики. В программе отдельно выделены parallel scanning и binary export, а также подробно описаны многопоточность и режимы интерфейса. В многопоточном сканировании используется опция -t, а бинарный экспорт лучше всего сочетается с большими деревьями и ограничениями памяти.
Если говорить практично, поведение такое:
-
для обычной живой диагностики хватает стандартного запуска
-
для долгих сканов крупных деревьев полезен
-1или-0 -
для глубокого TUI-показа с ошибками во время сканирования нужен
-2 -
для тяжёлых экспортов и повторного анализа удобен
-O -
для очень больших массивов данных бинарный формат рациональнее JSON
-
если нужен extended mode, надо помнить о дополнительном расходе памяти
Есть и ограничения, которые нужно иметь в виду. ncdu не поддерживает directory hard links и firmlinks на macOS как полноценные hard links, поэтому такие сущности могут считаться повторно. Возможны мелкие визуальные огрехи с multibyte и multicolumn символами. Размеры внутри программы представлены как signed 64-bit integer, а счётчики элементов — как 32-bit integer, так что для экстремально больших структур возможны крайние пограничные ситуации. Для обычного рабочего использования всё это редко становится проблемой, но для очень необычных деревьев такие нюансы лучше знать заранее.
Что в ncdu действительно можно сделать
Удобнее всего суммировать реальные возможности программы в одной таблице.
| Возможность | В ncdu есть | Комментарий |
|---|---|---|
| Сканирование дерева каталогов | Да | Базовая задача программы |
| Анализ конкретного пути | Да | Можно запускать на любом каталоге |
| Ограничение одной файловой системой | Да | -x |
| Показ disk usage и apparent size | Да | a, --disk-usage, --apparent-size |
| Сортировка по размеру, имени, item count, mtime | Да | s, n, C, M |
| Показ hidden и excluded items | Да | e |
| Показ child item counts | Да | c |
| Показ времени изменения | Да | В extended mode, m |
| Информация по объекту | Да | i, окно Item info |
| Пересчёт текущей директории | Да | r |
| Shell из текущего пути | Да | b |
| Удаление из интерфейса | Да | d |
| Кастомная команда удаления | Да | --delete-command |
| Экспорт в JSON | Да | -o |
| Экспорт в бинарный формат | Да | -O |
| Импорт сохранённого снимка | Да | -f |
| Многопоточное сканирование | Да | -t |
| Графическая treemap/sunburst-диаграмма | Нет | У ncdu текстовый интерфейс |
| Автоматическая очистка мусора системы | Нет | Программа не занимается авто-уборкой |
| Работа как полноценный файловый менеджер | Нет | Это именно disk usage analyzer |
Такая таблица хорошо показывает позиционирование ncdu. Программа сильна не количеством маркетинговых функций, а тем, как хорошо она решает свой основной сценарий — поиск и разбор занятого места на диске в консоли.
Что ncdu не умеет и почему это не проблема
У ncdu нет визуальных круговых диаграмм, treemap-обзора и прочих графических способов показать файловую систему. Для кого-то это минус, но в терминальной реальности это одновременно и достоинство: интерфейс остаётся быстрым, устойчивым и понятным даже по SSH. Программа не тратит себя на украшения, а даёт концентрированный ответ на вопрос: что именно сейчас занимает место.
Также ncdu не занимается автоматической оптимизацией системы. Она не очищает пакетные кэши сама по себе, не ищет дубликаты фотографий, не оптимизирует Docker-образы и не анализирует зависимости проекта. Всё это можно сделать другими инструментами, но именно ncdu помогает сначала увидеть, где вообще находится проблема и насколько она велика. Это честная и очень рабочая философия.
Настройка ncdu под свои привычки
У программы есть поддержка конфигурационных файлов: /etc/ncdu.conf и $HOME/.config/ncdu/config. Формат очень простой — по одной опции на строку. Это удобно, если вы постоянно хотите включённый -e, отключённое удаление, свои exclude patterns, нужную цветовую схему или иной стиль поведения по умолчанию.
Простейший пример настройки:
-e--disable-delete--exclude .git@--exclude-from ~/.ncduexcludes
Такой подход особенно полезен, если ncdu используется как постоянный рабочий инструмент: на серверах, в DevOps-практике, в расследовании причин нехватки места или в регулярном аудите рабочих каталогов. Программа небольшая, но по степени подстройки под привычный workflow она заметно взрослее, чем кажется на первый взгляд.
Сравнение с аналогами
Ниже важнее всего не абстрактные рассуждения, а конкретный разбор того, чем ncdu отличается от нескольких реальных аналогов, которые действительно используют для анализа дискового пространства.
Быстрый срез
| Программа | Формат работы | Главный акцент | Что у неё сильнее | Где ncdu выглядит лучше |
|---|---|---|---|---|
gdu |
TUI/CLI | Скорость, параллелизм, SSD-сценарии | Многопоточный подход, дополнительные режимы вроде archive browsing и сохранения анализа в БД | Более простая и предсказуемая логика, классический интерфейс, очень ясная модель импорта/экспорта |
dust |
CLI | Мгновенный обзор крупных директорий | Очень быстрый обзор без интерактивного браузинга, красивые полосы и акцент на сразу показать главное | Глубокая навигация по дереву, интерактивное исследование, точечные действия внутри каталога |
dua-cli |
CLI + interactive mode | Скорость и удаление данных | Параллельная работа, отдельный interactive mode, сильный акцент на быстрых удалениях | Более традиционный и простой TUI, яснее для регулярной навигации по иерархии |
Baobab |
GUI | Графический обзор и наглядность | Дерево + графическое представление, удобнее для desktop-пользователя | SSH, терминал, серверы без GUI, меньшая зависимость от окружения |
ncdu не пытается быть самой современной любой ценой. Её козырь — сбалансированность. Она не перегружена, не распадается на несколько режимов мышления и очень быстро объясняет пользователю, где у него ушло место.
gdu
gdu — очень серьёзный соперник. Это быстрый disk usage analyzer на Go с консольным интерфейсом; в описании отдельно подчёркивается, что инструмент особенно рассчитан на SSD и умеет хорошо использовать параллельную обработку. У него есть интерактивный режим с клавишами, удалением, даже фоновым и параллельным удалением, а результаты анализа можно сохранять в базу данных.
На практике gdu часто выбирают, когда хочется современный, быстрый, параллельный TUI-анализатор с расширенными фишками вокруг производительности. Но у ncdu есть очень сильный контраргумент: интерфейс проще, логика компактнее, экспорт/импорт реализованы очень прозрачно, а сама навигация ощущается как классическая, строгая и предсказуемая. Если нужен именно рабочий нож для сервера и ежедневных разборов, ncdu остаётся очень удобным выбором. Если приоритет — максимум скорости на современных носителях и дополнительные возможности вокруг анализа и хранения результатов, gdu может оказаться интереснее.
dust
dust — это другой подход. Программа прямо позиционируется как более интуитивная версия du на Rust и ориентирована на мгновенный обзор того, какие директории занимают место, без дополнительной сортировки и пайпов. Она выводит чуть меньше строк, чем высота терминала, подбирает наиболее крупные поддиректории и показывает цветные полосы, чтобы пользователь сразу получил сводную картину.
То есть dust — прекрасный инструмент для ответа на вопрос что здесь в целом самое большое. Но когда требуется не просто посмотреть, а интерактивно пройти внутрь, изучить структуру, включить скрытые элементы, открыть Item info, пересчитать каталог, переключить disk usage и apparent size, а затем, возможно, удалить проблемный объект — ncdu оказывается практичнее. dust лучше как быстрый обзорный CLI-инструмент; ncdu лучше как полноценный консольный браузер использования диска.
dua-cli
dua-cli — ещё один очень сильный конкурент. В описании прямо сказано: это инструмент для быстрого изучения расхода дискового пространства, параллельный по умолчанию, с возможностью удалять лишние данные быстрее, чем rm. У программы есть отдельный interactive mode, где можно исследовать дерево и удалять файлы и каталоги, а авторы подчёркивают многоступенчатую защиту от случайных удалений.
Сильная сторона dua-cli — скорость и явный акцент на удалении данных. Но ncdu выигрывает в том, что её модель взаимодействия проще и привычнее: один компактный TUI, предельно понятные клавиши, никакого раздвоения между обычным и interactive режимом в пользовательском ощущении. Для тех, кто любит лаконичный рабочий терминальный интерфейс без дополнительной сложности, ncdu выглядит очень убедительно. Для тех, кто хочет современный Rust-инструмент с сильным упором на производительность и удаление, dua-cli тоже заслуживает внимания.
Baobab
Baobab — это уже другой мир. GNOME Disk Usage Analyzer сканирует папки, устройства и даже online accounts, показывает дерево и графическое представление размеров, а также удобнее воспринимается на обычном десктопе благодаря полноценному GUI. Для пользователя Linux с графической оболочкой это очень наглядный вариант: глазами видно и структуру, и распределение пространства.
Но как только мы выходим в серверную и SSH-реальность, преимущество переходит к ncdu. Ей не нужен графический стек, она отлично чувствует себя в терминале, её удобно запускать на удалённой машине, экспортировать результаты и смотреть локально. Поэтому выбор между Baobab и ncdu зависит не от того, какая программа лучше вообще, а от среды. На рабочем GNOME-десктопе Baobab может быть комфортнее. На сервере, в контейнере, в tmux-сессии, на удалённом хосте — ncdu почти всегда практичнее.
Сильные стороны ncdu
1. Очень быстрый путь к ответу
У программы почти нет подготовительного этапа. Запустили, дождались обхода, получили список тяжёлых каталогов, пошли внутрь. Никакой лишней логики, никаких мастеров. Для задачи найти, что занимает место на диске, это идеальный сценарий.
2. Отличная работа в терминале и по SSH
ncdu действительно раскрывается в удалённой работе: минимальная зависимость от окружения, осмысленный текстовый интерфейс, поддержка экспорта/импорта и удобный pipe-сценарий для локального просмотра удалённого сканирования.
3. Удачная клавиатурная модель
Навигация, сортировка, скрытые элементы, информация по объекту, удаление, shell, пересчёт — всё лежит на понятных клавишах. Через несколько минут работы управление перестаёт ощущаться как команды и становится привычной навигацией по дереву.
4. Функции не декоративные, а рабочие
Каждая важная возможность реально используется: a помогает сравнить disk usage и apparent size, e объясняет потерявшиеся мегабайты, i даёт точную карточку объекта, M помогает ловить свежие разрастания, -r делает безопасный аудит, --delete-command встраивает программу в собственный workflow.
5. Очень хороший баланс между анализом и действием
ncdu не только показывает проблему, но и даёт тут же перейти к её решению: открыть shell в нужной точке, удалить объект, пересчитать директорию и увидеть новую картину. На практике это экономит массу времени.
Слабые стороны ncdu
1. Интерфейс строго текстовый
Для одних это плюс, для других минус. Если пользователь мыслит графическими диаграммами и хочет буквально увидеть диск в виде колец или treemap, ncdu покажется слишком аскетичной.
2. Нет автоматической уборки
Программа не удалит за вас системные кэши, не приведёт в порядок пакетный менеджер, не уберёт старые контейнеры и не найдёт дубликаты файлов. Она показывает структуру и даёт инструмент для точечных действий, но решение всё равно принимает пользователь.
3. Расширенный режим и большие экспорты требуют внимания к памяти
Если включать -e, работать с очень большими деревьями и экспортировать огромные массивы данных, расход памяти и объём файлов растут. В обычной практике это редко критично, но для крупных систем про это стоит помнить.
4. Некоторые нюансы с экзотическими структурами файловой системы
Жёсткие ссылки на каталоги, firmlinks на macOS, сложные символы в именах, экстремально большие числа объектов — всё это уже пограничные сценарии, где ncdu сама честно предупреждает о нюансах. Для типичной работы утилита надёжна, но магии тут нет: на очень нетипичных структурах возможны ограничения.
Кому ncdu подходит лучше всего
ncdu особенно хороша для системных администраторов, DevOps-инженеров, SRE, backend-разработчиков и просто для тех, кто много работает в терминале. Если вы регулярно имеете дело с серверами, удалёнными машинами, контейнерами, каталогами логов, кэшами сборки, большими рабочими деревьями и периодически ищете, куда уходит место на диске, эта программа быстро становится постоянным инструментом.
Хорошо она подходит и обычным Linux-пользователям, которые не хотят ставить графический анализатор ради разовой задачи. Когда нужно понять, что разрослось в домашней директории, какой каталог забит архивами, где лежат огромные загрузки, что произошло с папкой проекта — ncdu справляется быстро и без подготовки.
А вот тем, кто предпочитает GUI и наглядные диаграммы, логичнее смотреть в сторону Baobab. Тем, кто хочет сверхбыстрый обзор с минимальным интерактивом, понравится dust. Тем, кто выбирает современный параллельный TUI с дополнительными возможностями, стоит посмотреть на gdu или dua-cli. Но именно ncdu остаётся одним из самых удачных компромиссов между простотой, контролем и практической полезностью.
Итог
ncdu — это очень сильный специализированный инструмент для анализа дискового пространства. Она не распыляется на функции, не пытается быть комбайном и именно поэтому работает так уверенно. Запустить сканирование, увидеть тяжёлые каталоги, пройти внутрь, переключить представление размеров, показать скрытые элементы, посмотреть Item info, открыть shell, удалить ненужное, пересчитать текущую директорию — все основные действия укладываются в один компактный терминальный интерфейс.
Если нужен поиск больших файлов и папок в Linux, если важно быстро понять, чем занято место на диске, если работа идёт по SSH или на машине без GUI, ncdu остаётся одним из самых удобных и взрослых решений. У неё есть достойные аналоги, но по сочетанию скорости, ясности интерфейса, качества навигации и удобства реальной повседневной работы ncdu до сих пор выглядит очень убедительно. Это именно та программа, которую запускают не ради эксперимента, а ради результата.