Как распечатать дерево каталогов в терминале


131

Какую команду можно использовать для рисования дерева каталогов внутри эмулятора терминала?

введите описание изображения здесь

Ответы:


176

Вы можете использовать treeдля печати дерева каталогов в терминале. Установить treeиз терминала,

sudo apt-get install tree

Чтобы увидеть дерево каталогов, используйте

tree /path/to/folder

Или перейдите в каталог и просто используйте

tree

Он также имеет некоторые дополнительные параметры. Вы можете видеть владелец username, groupnameдату последней модификации файла / папки , и так далее , используя tree. Он поддерживает цвета каталогов, lsтак что вы можете видеть цветные результаты.

Смотрите man treeбольше.


6
Если вы хотите, чтобы дерево только каталоги, используйте -dпереключатель.
Souravc

чистый и легкий инструмент
zhihong

3
или если вы используете Brew на OSX. "варить дерево"
AshHimself

Я искал, как это сделать на Win7 + cmder: treeработает хорошо.
Бендж

@ AshHimself, да побили меня к этому. ;)
Jamescampbell

46

Вы можете сделать это легко с помощью следующей команды:

find . -type d | sed -e "s/[^-][^\/]*\//  |/g" -e "s/|\([^ ]\)/|-\1/"

Эта команда будет рекурсивно искать каталоги в родительском каталоге, а затем рисовать дерево найденных каталогов.

Вы также можете попробовать следующее, чтобы включить все файлы.

find | sed 's|[^/]*/|- |g'

7
Пожалуйста, разделите и объясните приведенную выше команду для меня.
Авинаш Радж

3
@AvinashRaj Приятель, общая команда ясна, если вы хотите узнать больше о sed, обратитесь к некоторым учебникам или Google. Это действительно трудно объяснить все седь здесь!
Maythux

2
Maythux, вы правы, что если вы понимаете sed, то ваш сценарий ясен, но не думайте, что sed / regexes - это не что иное, как загадочный язык, который вы выучили за эти годы. Это вряд ли интуитивно понятно - что, я думаю, является духом комментария Авинаша Радж.
аааааа

Что мне нужно изменить, чтобы игнорировать скрытые каталоги?
cadams

1
как выйти из конкретного каталога?
Дипак Дхолиян

14

Существует программа, treeкоторая называет содержимое каталога в древовидной структуре.

Я думаю, что это в репозиториях (или даже установлены)

sudo apt install tree

tree -d /path/to/directory

Проверьте эту ссылку для более.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.