Tree is an open source command line tool for recursively outputting the structure of a directory. It is useful for generating a clear representation of complex directory structures.
Installation
Tree is compatible with most Unix based operating systems, including macOS. Since tree is not included with macOS, here are two methods for installing it:
Via Homebrew
If you already have Homebrew installed simply run:
brew install tree
From Source Code
1. Download the source code from GitHub:
git clone https://github.com/execjosh/tree.git
2. Move into the tree directory and edit the Makefile:
cd tree nano Makefile
3. Comment out (prepend a #) the line under Linux defaults and uncomment (remove the #) the lines under the OS X section:
Note: To save changes in nano; press control + X, then Y and return.
4. To compile the binary simply run:
make
5. Move the newly generated binary into /usr/local/bin/:
sudo mv tree /usr/local/bin/
6. Lastly, move the manual page into /usr/share/man/man1/.
sudo mv doc/tree.1 /usr/share/man/man1/
Usage
Tree has many options and the manual page goes into each one in-depth, you can view the man page with:
man tree
Our favourite options:
- -C: Colour folder names to help distinguish files from folders
- -d: Only output directories, not files
- -H: Output as HTML with hyperlinks to files and folders
- -N: Do not escape spaces with forward slashes or replace non=printable characters
- -o: Send output to a file
- -Q: Put double quotes around filenames
Example
Using tree to list all files and folders in a user's Music directory: