This post is part of the Nifty Command Lines series.
tree command is an easy way to print files and folder structures. Like you see in a lot of tutorials. Running it without arguments will print your files and folders.
~/code-like-the-90s ❯❯❯ tree . ├── css │ └── main.css ├── img │ └── bkg.png ├── index.html └── script.js 2 directories, 4 files
You can tell it to ignore directories with
bash>tree -I [DirectoryName]. In most web scenarios, you’ll want to ignore your npm packages, so
bash>tree -I node_modules.
You can exclude more than one folder by separating them with a pipe character.
tree -I 'node_modules|.cache|test_*|public'
This is a must to ignore cache folders, build directories, etc.
-d flag restricts it to only show your folders and hide files.
~/c/nextjs-app ❯❯❯ tree -d . ├── pages │ └── api ├── public └── styles 4 directories
~/my-app ❯❯❯ tree -P '*.js' -I 'node_modules' . ├── public └── src ├── App.js ├── App.test.js ├── index.js ├── serviceWorker.js └── setupTests.js 2 directories, 5 files
Finally, you can restrict how deep in the folder structure you want to crawl using the
bash>tree -L 2 will only go 2 levels deep.
As usual, install it with Homebrew or apt-get:
brew install tree or
apt-get install tree
There you go! I’ve used this command quite a lot to create documentation or get a sense of a new codebase. I hope it will be useful for you too.