はじめに
たまに使うとオプションを忘れがちなので、自分用の備忘を兼ねて Macでのtreeコマンドのインストール方法と、“これだけ覚えれば困らない”使い方をまとめました。
※macOSは標準でtreeが入っていないため、Homebrew等で導入します
対象
- Macでプロジェクトのフォルダ構成をREADMEに載せたい / PRレビューで共有したい人
- treeのよく使うオプションだけ素早く思い出したい人
- VSCode / GitHub / Qiita等に貼るための見やすい出力が欲しい人
動作環境
- macOS(Apple Silicon / Intel どちらでもOK)
- Homebrew が使えること(未導入でも以下に手順あり)
1. インストール方法
treeコマンドをインストール。
# Homebrew 未導入の人は公式手順で導入してから実行
brew install tree
以下コマンドを実行し、インストールされたことを確認。
tree --version
which tree
2. 最小の使い方
# カレントディレクトリをツリー表示
tree
# 階層を制限(例:深さ2まで)
tree -L 2
# 隠しファイル(.git, .env など)も含める
tree -a
# 出力をファイル保存
tree -L 2 > tree.txt
3. よく使うオプション早見表
| 目的 | オプション | 例 |
|---|---|---|
| 深さを制限 | -L <深さ> |
tree -L 2 |
| 隠しも含める | -a |
tree -a -L 2 |
| 不要を除外 | -I 'PAT1|PAT2' |
tree -I '.git|node_modules|.venv' |
| ディレクトリのみ | -d |
tree -d -L 2 |
| フルパス表示 | -f |
tree -f -L 2 |
| サイズ | -h -s |
tree -h -s -L 1 |
| 権限 / 所有者 | -p -u -g |
tree -p -u -g -L 1 |
| 更新時刻順 |
-t(-rで逆順) |
tree -t -L 1 |
| パターンで含める | -P 'glob' |
tree -P '*.ts' |
| HTML出力 | -H . -o out.html |
tree -H . -o tree.html -L 2 |
※ -I は Ignore(無視)。|でOR指定。パターンは正規表現ではなくてOK。
4. コピペで使えるテンプレ(用途別)
4.1 README/PRで“ほどよく短く”
tree -a -L 2 -I '.git|node_modules|.venv|__pycache__|.terraform|dist|build|coverage|.next|.DS_Store' > tree.txt
4.2 ディレクトリ構造だけ共有(レビュー向け)
tree -d -L 2 -I '.git|node_modules|.venv|__pycache__|.terraform|dist|build|coverage|.next'
4.3 TypeScriptだけ見たい
tree -P '*.(ts|tsx)' -I 'node_modules|dist|build|.next' -L 3
4.4 “新しい順”でトップを確認
tree -t -L 1
5. 出力イメージ
usr@my-recipe-app % tree -d -L 2
.
├── bin
├── controllers
├── middlewares
├── models
├── public
│ ├── images
│ └── stylesheets
├── routes
└── views
10 directories
6. よくあるつまずきと対処
zsh: command not found: tree
-
brew install tree後、which treeでパスを確認する。
出力が長すぎる
-
-L 2など深さ制限+-Iで.git/node_modules等を除外する。
統計行だけ見たい(ディレクトリ/ファイル数)
tree -a | tail -n 1
おわりに
treeコマンドは、見る人の「どこに何があるの?」を手助けして、わかりにくさを減らしてくれる道具だと思います。
まだ私もオプションを忘れがちですが、同じように迷う方の助けになれば幸いです。