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

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

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

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

Ограничение глубины обхода (-L) и вывод только каталогов (-d)
Сформируем дополнительный уровень вложенности директорий, запустив команду 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:

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

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

Отображение скрытых файлов (-a), прав доступа (-p) и размера (-h)
Для проверки работы со скрытыми конфигурационными объектами создадим dot-файлы командой touch demo_project/.env demo_project/.gitignore:

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

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

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

Фильтрация по шаблонам (-P, -I) и экспорт отчёта в HTML (-H, -o)
Добавим временные служебные логи командой touch demo_project/temp.log demo_project/debug.tmp, чтобы протестировать механизм масок:

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

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

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

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

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