Selecting List view in Finder displays files and folders in a recursive structure with sub folders and files appearing under their parent directories.
If you work in “Terminal”:terminal with any regularity, you know there are times when listing a directory structure in a manner similar to Finder’s List view would be handy, but there is no built in command to do so.
Before I switched to Mac OS X, I used Linux where I discovered a package called “Tree”:tree. The package consists of a single command that when passed a directory, displays a recursive tree-like listing of its content in ASCII form. The source for the package is freely available and can be downloaded and built in just a couple minutes.
Building Tree for Mac OS X
The following steps assume:
- Your using Mac OS X 10.6 Snow Leopard
- The latest “Xcode Tools”:devtools from the Snow Leopard DVD or downloaded from “Apple”:download are installed
- Your shell’s PATH variable includes
/usr/local(if you don’t know why or how, see this Hivelogic “post”:hivelogic)
- You have experience running UNIX commands in Terminal
Change to or create a directory where you can download and unpack the source. I keep a ‘Projects’ folder to use for this kind of task.
Download and unpack the source code
The links and versions are current at the time of this writing. See the program “site”:tree for up to date information.
curl -O ftp://mama.indstate.edu/linux/tree/tree-1.5.3.tgz tar xzvf tree-1.5.3.tgz
Now change to the source directory:
Modify the Makefile for Mac OS X
The source ships with a file called ‘Makefile’ that contains information used by the build process to compile Tree. By default, the source builds for the Linux OS and installs to
/usr. Use your favorite text editor to change the file for Mac OS X.
Find the line that reads:
prefix = /usr
… and change to:
prefix = /usr/local
Find and uncomment (remove the leading ‘#’) the
XOBJS lines in the Mac OS X section of the Makefile so it looks like this:
# Uncomment for OS X: #CC=cc CFLAGS=-O2 -Wall -fomit-frame-pointer -no-cpp-precomp #LDFLAGS= XOBJS=strverscmp.o
Compile and install
make sudo make install
Assuming you did not receive any errors during the build process, you should be able to type the following and see a recursive listing of all the files and folders in the current directory:
If you want to see directories only, try this:
That’s all there is.