Команда tree в Ubuntu: визуализация структуры каталогов

Обзор возможностей

При администрировании серверов и разработке под Linux часто возникает необходимость быстро оценить многоуровневую иерархию файлов и директорий. Консольная утилита tree формирует наглядное графическое представление файлового дерева прямо в терминале. В данном руководстве рассмотрены все практические аспекты работы с инструментом: от базовой установки утилиты до тонкой фильтрации по маскам, контроля прав доступа и формирования наглядных отчётов для проектной документации.

Инсталляция пакета tree и базовое построение дерева

Перед началом работы синхронизируем индекс доступных пакетов и установим утилиту tree в дистрибутиве Ubuntu:

apt-get update -qq && apt-get install -y tree

Для демонстрации сценариев построим тестовую структуру папок с помощью команды mkdir -p demo_project/src demo_project/docs demo_project/tests:

mkdir -p demo_project/src demo_project/docs demo_project/tests

Наполним созданные директории файлами исходного кода и документации с помощью вызова touch:

touch demo_project/src/main.py demo_project/src/utils.py demo_project/docs/README.md demo_project/tests/test_main.py

Стандартный вызов tree запускает рекурсивный обход выбранного каталога, наглядно отображая вложенность элементов и подготавливая суммарную статистику по общему числу папок и файлов.
При запуске без аргументов утилита выводит полное дерево текущего каталога до самого глубокого уровня.
⚙️ [Ключевые параметры запуска]

-a : отображение скрытых элементов (файлов и папок, начинающихся с точки).
-d : вывод исключительно каталогов с пропуском файлов.
-L level : ограничение предельной глубины рекурсивного спуска.
-f : отображение полного относительного пути для каждого объекта.
-p : вывод прав доступа и атрибутов владения для каждой записи.
-h : вывод размера файлов в человекочитаемом формате (KB, MB, GB).
-s : вывод точного размера файлов в байтах.
-I pattern : исключение файлов и папок, соответствующих шаблону подстановки.

tree demo_project

Ограничение глубины обхода (-L) и вывод только каталогов (-d)

Сформируем дополнительный уровень вложенности директорий, запустив команду mkdir -p demo_project/src/components demo_project/src/assets/images:

mkdir -p demo_project/src/components demo_project/src/assets/images

Разместим тестовые вложенные ресурсы выполнением touch demo_project/src/components/button.py demo_project/src/assets/images/logo.png:

touch demo_project/src/components/button.py demo_project/src/assets/images/logo.png

Команда tree -L 2 demo_project фиксирует горизонт сканирования строго на первых двух уровнях вложенности.
Более глубокие ветки (начиная с третьего уровня) скрываются из вывода, что позволяет мгновенно понять архитектуру массивного репозитория без лишней детализации.

tree -L 2 demo_project

С помощью команды tree -d demo_project из отчёта полностью исключаются файлы, оставляя только скелет папок.
Этот режим идеален для анализа крупномасштабных проектов с тысячами файлов, где важна исключительно топология директорий.

tree -d demo_project

Отображение скрытых файлов (-a), прав доступа (-p) и размера (-h)

Для проверки работы со скрытыми конфигурационными объектами создадим dot-файлы командой touch demo_project/.env demo_project/.gitignore:

touch demo_project/.env demo_project/.gitignore

Ограничим доступ к секретам, применив команду chmod 600 demo_project/.env для установки прав чтения и записи только для владельца:

chmod 600 demo_project/.env

Флаг tree -a demo_project принудительно включает скрытые системные сущности в формируемую иерархию.
В листинге отчётливо видно появление конфигурационных файлов .env и .gitignore, расположенных в корне проекта.

tree -a demo_project

Комбинация флагов tree -p -h demo_project добавляет к каждому элементу столбцы прав доступа (-p) и масштабируемый объём (-h).
Это позволяет системному администратору параллельно проверять безопасность файлов и контролировать занимаемое ими дисковое пространство.

tree -p -h demo_project

Фильтрация по шаблонам (-P, -I) и экспорт отчёта в HTML (-H, -o)

Добавим временные служебные логи командой touch demo_project/temp.log demo_project/debug.tmp, чтобы протестировать механизм масок:

touch demo_project/temp.log demo_project/debug.tmp

Команда tree -P "*.py" demo_project оставляет в дереве исключительно Python-скрипты, отсекая файлы с иными расширениями.
Такая выборка полезна для инспекции размещения модулей приложения без визуального шума от сопроводительных данных.

tree -P “*.py” demo_project

Синтаксис tree -I "*.tmp|*.log" demo_project использует логическое «ИЛИ» (|) для исключения отладочных артефактов из общего вывода.
В результате консоль отображает только целевые файлы проекта без захламления промежуточными логами сборки.

tree -I “.tmp|.log” demo_project

Команда tree -H http://localhost -o demo_project/structure.html demo_project трансформирует вывод в полноценную HTML-страницу с кликабельными гиперссылками.
Указанный базовый URL (http://localhost) подставляется в атрибуты href, позволяя публиковать структуру файлового архива на внутреннем веб-сервере или передавать в отчётах.

tree -H http://localhost -o demo_project/structure.html demo_project

Проверим заголовочные метаданные и вёрстку сгенерированной веб-страницы с помощью команды head -n 15 demo_project/structure.html:

head -n 15 demo_project/structure.html

Мы подробно разобрали ключевой инструментарий команды tree в дистрибутиве Ubuntu. Грамотное комбинирование флагов фильтрации, регулировки глубины и атрибутов безопасности позволяет не только мгновенно ориентироваться в массивных файловых массивах, но и генерировать аккуратную документацию для инженерных команд.