macで何気なくtreeコマンドを入力したらこんなことが返ってきた.
$ tree
zsh: command not found: tree
ないよって言われてしまった.どうやらデフォルトではtreeコマンドは存在しないみたいだ.
Windowsではデフォルトで使えたはずだと思うが...
そもそもtreeコマンドとは
ディレクトリとその中のファイルをツリー状に表示するコマンドラインツール
こんな感じでディレクトリやファイル構造を出力してくれる
.
├── ディレクトリ1
│   ├── ファイル1
│   └── ファイル2
└── ディレクトリ2
    └── ファイル3
どのような時に使うの?
- 
プロジェクトの構造の理解
新しいプロジェクトに取り組む際や,既存のプロジェクトの構造を迅速に把握する必要がある時に,tree コマンドを使うと,どのようなディレクトリやファイルが存在しているか一目でわかる. - 
ドキュメント作成
プロジェクトのドキュメントや報告書を作成する際に,プロジェクトのディレクトリ構造を説明するために,tree コマンドの出力を利用することができる.例えばQiitaを書いたり,社内Wikiを書いたり,プルリクエスト送る際に有効である. - 
バージョン管理の整理
バージョン管理システム(例えば Git)を使用している場合,プロジェクトのディレクトリ構造を定期的に確認し,不要なファイルやディレクトリがトラッキングされていないか確認するのに tree コマンドが使える.これにより,リポジトリの整理を助け、誤ってファイルが追加されるのを防げる. 
treeコマンドを使えるようにする
macの場合homebrewがプリインストールされているはずなので以下のコマンドを入力してtreeをインストールする.
brew install tree
これだけで使えるようになる.
実際の使用例
Macでは,.から始まるディレクトリやファイルは隠しファイルで通常の状態だと見ることができない
cmd+shift+.を同時に押すと表示,非表示ができる
tree
デフォルトの使い方.これだけでツリー状に出力してくれる.
tree
.
├── README.md
└── project
    ├── file1.txt
    └── src
        └── code.cpp
2 directories, 3 files
tree -C
(対応していれば)ツリー状の出力に対してディレクトリやファイルに色をつけてくれる
tree -C
tree -a
隠しファイル,隠しディレクトリも含めてツリー状に出力する.
tree -a
.
├── .DS_Store
├── .hiddendir
│   ├── .hiddenfile
│   └── file2.txt
├── README.md
└── project
    ├── .hidden.txt
    ├── file1.txt
    └── src
        └── code.cpp
tree -d
ディレクトリのみツリー状に出力する
tree -d
.
└── project
    └── src
3 directories
tree -L
ディレクトリの深さを制限してツリー状に出力する
tree -L 1
.
├── README.md
└── project
tree -f
各ファイルとディレクトリのフルパスをツリー状に表示する
tree -f
tree -f
.
├── ./README.md
└── ./project
    ├── ./project/file1.txt
    └── ./project/src
        └── ./project/src/code.cpp
3 directories, 3 files
treeコマンドのオプションを組み合わせよう
このオプションを以下のように組み合わせて使えば隠しファイルも含めたすべてのファイルとディレクトリをフルパスで表示させられる.
tree -a -f
.
├── ./.DS_Store
├── ./.hiddendir
│   ├── ./.hiddendir/.hiddenfile
│   └── ./.hiddendir/file2.txt
├── ./README.md
└── ./project
    ├── ./project/.hidden.txt
    ├── ./project/file1.txt
    └── ./project/src
        └── ./project/src/code.cpp
4 directories, 7 files
このように使用することができる.


