132

What is the command that can be used to draw the directory tree inside the terminal emulator?

enter image description here

177

You can use tree to print the directory tree in terminal. Install tree from terminal,

sudo apt-get install tree

To see the directory tree, use

tree /path/to/folder

Or navigate to a directory and just use

tree

It has some advanced options too. You can see owner's username, groupname, date of last modification of a file/folder and so on using tree. It supports directory colors of ls so you can see colourized outputs.

See man tree for more.

  • 6
    If you wish to tree only directories use -d switch. – souravc Mar 8 '14 at 9:21
  • clean and easy tool – zhihong Feb 16 '15 at 15:57
  • 3
    or if you use brew on OSX. "brew install tree" – AshHimself Sep 15 '15 at 4:13
  • I was searching how to do it on Win7 + cmder : tree works well. – Benj Aug 9 '16 at 14:40
  • @AshHimself yep beat me to it. ;) – jamescampbell Aug 15 '18 at 20:24
46

You can do it easily with the following command:

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

This command will search recursively for directories inside the parent directory and then draw the tree of the founded directories.

You may also try the following to include all of the files as well.

find | sed 's|[^/]*/|- |g'
  • 7
    Please split and explain the above command for me. – Avinash Raj Mar 8 '14 at 9:08
  • 3
    @AvinashRaj Buddy the overall of the command is clear if you wan to learn more about sed please refer to some tutorials or google it. It's really hard to explain all sed here! – Maythux Mar 8 '14 at 9:23
  • 2
    Maythux, you're right that if you understand sed then your script is clear, but don't be fooled into thinking sed/regexes are anything but a cryptic language you've learned over the years. It's hardly intuitive - which I think is the spirit of Avinash Raj's comment. – aaaaaa Oct 28 '16 at 6:25
  • What would I need to change to ignore hidden directories? – cadams Aug 14 '17 at 19:06
  • 1
    how to leave a specific directory? – Deepak Dholiyan Nov 11 '18 at 10:09
14

There is a program called tree which lists directory content in a tree structure.

I think it's in the repositories (or even installed)

sudo apt install tree

tree -d /path/to/directory

Check this link for more.

protected by souravc Dec 8 '16 at 12:44

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.