I tried to simply the process as the original solution is still a little bit cumbersom.
You can view the source codes of the GitHub Repository here .
What you need to do is to first open a new Terminal
, and
cd Desktop # Navigate to Desktop where we'll be downloading the repo
git clone https://github.com/hongtaoh/tree-1.8.0 # Clone the repo
mv ~/Desktop/tree-1.8.0/tree /usr/local/bin/ # Move tree to /usr/local/bin
Done.
You can generate the directory tree under the current directory. For example,
cd tree-1.8.0
tree
or generate the directory by specifying the exact path following tree
tree /anywhere/you/like/
To remove tree-1.8.0
from Desktop:
rm -rf tree-1.8.0
I shared my answer here .
You can still read the following instructions espeically you want to use only the codes from official sources for security reasons.
I found a much better solution than what I previously wrote . Many thanks to Michael Page’s post , Shaun Chapman’s post , slhck’s answer , and apouche’s answer .
Install tree #
Open a new Terminal
, copy and paste the following codes, wait for a few seconds for the first several lines to run, and press Enter
(otherwise the last line won’t run). When you copy and past multiple lines into your Terminal
, you should always press Enter
to run the last line of code.
cd Desktop
curl -O ftp://mama.indstate.edu/linux/tree/tree-1.8.0.tgz
tar xzvf tree-1.8.0.tgz
cd tree-1.8.0
open Makefile -a TextEdit
Then do what Shaun Chapman suggested:
- Comment out the following lines:
The result will be like this
# Linux defaults:
# CFLAGS=-ggdb -pedantic -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
#CFLAGS=-O4 -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
#LDFLAGS=-s
- Uncomment these lines:
The result will be like this
# Uncomment for OS X:
# It is not allowed to install to /usr/bin on OS X any longer (SIP):
prefix = /usr/local
CC=cc
CFLAGS=-O2 -Wall -fomit-frame-pointer -no-cpp-precomp
LDFLAGS=
MANDIR=/usr/share/man/man1
OBJS+=strverscmp.o
Save the changes using Command + S
.
Go back to your Terminal
, copy and paste the following codes, and press Enter
.
make
sudo make install
You’ll be asked to input the passwords. Note that your input will be invisible.
Installation is successful if you see
Also note that although it says that “It is not allowed to install to /usr/bin on OS X any longer (SIP)”, I can still install it. If it happens that you cannot install it, after make
, you can try this
mv ~/Desktop/tree-1.8.0/tree /usr/local/bin/
The above line will move /tree-1.8.0/tree
to usr/local/bin/
. Please not that you don’t have to do this if sudo make install
works for you!
Now let’s go back to Terminal
to delete both tree-1.8.0
and tree-1.8.0.tgz
since we don’t need them anymore.
cd .. # Go back to Desktop
rm -rf tree-1.8.0
rm -rf tree-1.8.0.tgz
Use tree #
Under the directory you are in, simply use tree
. For exmaple, if you followed every of my steps above, you are in the directory of tree-1.8.0
, then input tree
in your Terminal
, you’ll see the directory tree of tree-1.8.0
.
When you are not in the directory whose structure you want to show, for example, if you open a new Terminal
using Command + N
, you can use
tree ~/Desktop/tree-1.8.0/
to get the directory tree.
I prefer the output of this method than that produced using the follwoing method, since it’s much clearer and it has the same order as what you see in your original folder:
├── Folder_1
├── Folder_2
├── Static
│ └── Data
│ └── YourData.csv
└── YourBlogdownProject.RProj
My Previous Solution #
How can I print a directory tree like this on Mac:
|____Folder_2
|____YourBlogdownProj.RProj
|____Static
| |____Data
| | |____YourData.csv
|____Folder_1
Open a new Terminal
. Type this
open ~/.bash_profile -a TextEdit
If you prefer Sublime Text
, you can replace TextEdit
with "Sublime Text"
.
Then, simply add the following on a new line:
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
Save the change. Open a new Terminal
using Command + N
, nagivate to the folder of which you want to print a directory tree using cd
, and simply type tree
in your Terminal
. A directory tree should unfold itself.
Reference #
- http://mama.indstate.edu/users/ice/tree/
- https://web.archive.org/web/20130527203022/http://shaunchapman.me/post/329270449/how-to-install-the-tree-command-on-mac-os-x
- https://techion.com.au/blog/2018/5/24/printing-hierarchical-directory-structures
- https://superuser.com/questions/359723/mac-os-x-equivalent-of-the-ubuntu-tree-command/#448969
- https://osxdaily.com/2016/09/09/view-folder-tree-terminal-mac-os-tree-equivalent/
- https://superuser.com/questions/359723/mac-os-x-equivalent-of-the-ubuntu-tree-command
- https://stackoverflow.com/questions/54228819/tree-command-not-found
- https://support.apple.com/guide/terminal/move-and-copy-files-apddfb31307-3e90-432f-8aa7-7cbc05db27f7/mac
Last modified on 2021-10-05