Table of Contents
tree — наглядный вывод структуры директорий в виде дерева с кучей фильтров, сортировок и форматов (включая HTML).
📝 Топ‑20 самых полезных флагов tree#
-L N— ограничить глубину доNуровней.-a— показывать скрытые файлы (.*).-d— показывать только директории.-I PATTERN— исключить по шаблону (glob, напр.-I "node_modules|dist").-P PATTERN— включить только соответствующие файлы (glob).--prune— скрывать пустые папки после фильтрации-I/-P.-f— показывать полные пути к файлам.-i— ASCII‑отступы, без линий (plain).-A— использовать ASCII‑псевдографику вместо юникода.-h— человекочитаемые размеры (с-s/--du).-s— показывать размер файла (байты, с-hкрасиво).--du— суммарный размер директорий (какdu), сочетается с-h.-p— права доступа (rwx) для каждого узла.-u/-g— показывать владельца и группу.-D— дата последней модификации.-t— сортировать по времени (новые сверху, с-r— наоборот).-S— сортировать по размеру (с-r— обратный порядок).--dirsfirst— директории перед файлами.-H URL— сгенерировать HTML с ссылками (base href).-o FILE— записать вывод в файл (часто вместе с-H).
🚀 Айсберг команд tree — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
tree
- Показать дерево текущего каталога
tree -L 2
- Показать до 2 уровней вложенности
tree -a
- Включая скрытые файлы
tree dir_name
- Дерево для другой директории
🟡 Уровень 2 — Фильтры и выборки#
tree -d
- Только директории
tree -I "node_modules|dist|.git"
- Исключить папки по шаблону (регэксп‑подобный glob)
tree -P "*.png"
- Показать только файлы по шаблону
tree -L 3 -I ".git|*.tmp" --prune
- Обрезать глубину, скрыть мусор и убрать пустые ветви
🟠 Уровень 3 — Форматирование и отображение#
tree -f
- Печатать полные пути
tree -i -A
- Простой ASCII‑вывод без линий, удобен для копипаста
tree -h -s
- Размеры файлов (сумма директорий не считается — см.
--du)
tree -p -u -g -D
- Права, владелец, группа, дата для каждого узла
tree --dirsfirst
- Сначала папки, потом файлы
🔵 Уровень 4 — Сортировки и порядок#
tree -t
- Сортировать по времени (свежие сверху)
tree -t -r
- По времени, но в обратном порядке
tree -S
- Сортировка по размеру
tree -S -r
- Крупные внизу (обратная сортировка)
tree -v
- «Естественная» сортировка имён (1,2,10 — по числам)
🟣 Уровень 5 — Размеры и диск#
tree --du -h
- Суммарные размеры директорий (как
du) в человекочитаемом виде
tree -s -h -L 2
- Размеры файлов до 2 уровней
tree --inodes
- Показать номера inode (зависит от сборки
tree)
tree -x
- Не выходить за пределы текущего файлового системы (как
find -xdev)
🔴 Уровень 6 — Экспорт и HTML#
tree -H "http://localhost/" -o tree.html
- Сгенерировать HTML‑страницу с кликабельными ссылками
tree -H "." -o index.html -L 3 --dirsfirst
- HTML‑индекс каталога (до 3 уровней)
tree -A -o tree.txt
- Плоский ASCII‑дамп в файл
tree -f --noreport | tee tree.txt
- Записать вывод без финальной статистики
🟤 Уровень 7 — Комбо и интеграции#
tree -L 2 -I "node_modules|dist|.git" --prune | less -R
- Просмотреть дерево постранично
tree -f -P "*.py" -I ".venv|__pycache__"
- Только Python‑файлы, исключая виртуальные окружения/кеш
tree --du -h -I ".git|node_modules" --prune | grep -E "^[0-9\.]+[KMG] .*"
- Быстро найти «тяжёлые» узлы из вывода (по размерам)
tree -fi -P "*.jpg" | xargs -I {} -n 1 echo "Обрабатываю {}"
- Пройтись по каждому найденному файлу командой
tree -L 1 -d --dirsfirst | awk '{print NR": "$0}'
- Пронумеровать верхнеуровневые директории
🧠 Бонус — типичные пресеты#
tree -L 2 --dirsfirst -I ".git|node_modules|dist|build" --prune
- Быстрый обзор проекта
tree -a -I ".git|.idea|.vscode|node_modules" --prune
- Полный обзор, но без «шума» IDE и зависимостей
tree --du -h -I "node_modules|dist|build|.git" --prune
- Картина «кто занимает место»
tree -H "." -o index.html -I ".git|node_modules|dist" --prune
- Красивый HTML‑индекс директории проекта