tree コマンドは、ディレクトリ配下の構造をツリー形式で見やすく表示するコマンドです。
ディレクトリの階層やファイル配置を一目で把握できるため、設計や調査、手順書作成の場面で便利です。
標準で入っていない環境も多く、その場合はパッケージ(例:tree)のインストールが必要になります。
「サーバのディレクトリ構造を説明したい」「設定ファイルの配置を共有したい」といった場面で活躍します。
tree [オプション] [ディレクトリ]
引数にディレクトリを指定しない場合は、カレントディレクトリを対象にツリー表示します。
階層が深いディレクトリに対しては、-L で深さを制限したり、-I で除外パターンを指定したりすると扱いやすくなります。
・カレントディレクトリをツリー表示する(基本)
tree
カレントディレクトリ配下のディレクトリ・ファイルをツリー形式で表示します。
まずはこれで全体像を掴んで、必要に応じて -L などで絞り込むのが定番です。
・特定ディレクトリをツリー表示する
tree /etc
指定したディレクトリ(この例では /etc)を対象にツリー表示します。
設定ファイルの配置確認や、構造の共有に便利です。
・階層の深さを 2 までに制限して表示する(-L)
tree -L 2 /var/www
-L で表示する階層の深さを制限できます。
深すぎる階層を全部出すとノイズになりやすいので、ドキュメントに載せるときは特に有効です。
・隠しファイル(ドットファイル)も含めて表示する(-a)
tree -a
-a を付けると、.git や .env などの隠しファイル/隠しディレクトリも表示します。
構成管理や開発環境の共有で「隠しファイルも含めて見たい」場面で使います。
・ディレクトリだけを表示する(-d)
tree -d -L 3
-d はファイルを省いてディレクトリのみ表示します。
「ディレクトリ構造だけを説明したい」「大量のファイル表示を避けたい」場合に便利です。
・フルパスで表示する(-f)
tree -f -L 2 /var/log
-f を付けると、各エントリをフルパスとして表示します。
運用手順書などで「どこにあるか」を明示したい場合に役立ちます。
・ファイルサイズも一緒に表示する(-s)
tree -s -L 2
-s はファイルサイズも表示します。
ログや生成物が想定以上に大きくなっていないか、ざっくり把握したいときに使えます。
・最終更新時刻も表示する(-D)
tree -D -L 2
-D は最終更新時刻を表示します。
「最近更新されたファイルがどこか」を確認したいときに便利です。
・パターンに一致するものを除外して表示する(-I)
tree -I "node_modules|.git|vendor" -L 4
-I は除外パターンを指定します(複数は | で OR 条件にできます)。
依存ライブラリや Git 管理ディレクトリなど、出力したくないものを省けます。
・ディレクトリを先に表示して見やすくする(–dirsfirst)
tree --dirsfirst -L 2
–dirsfirst は、ディレクトリを先に表示します。
ファイル数が多いディレクトリでは、構造が追いやすくなります。
・出力をファイルに保存して共有する(リダイレクト)
tree -a -L 4 /var/www > tree.txt
出力をファイルに保存して、チーム内で共有したり、チケットに添付したりできます。
構成レビューの資料としても地味に使えます。
・手順書や設計資料に「ディレクトリ構成」を載せる
Web サイトやアプリの構成を説明するとき、ツリー表示は一発で伝わります。
ただし、出力が長くなりがちなので -L や -I を併用して「必要な範囲だけ」載せるのがコツです。
・不要ファイルが増えていないか確認する
デプロイ先に node_modules が入っていないか、不要なログや一時ファイルが増えていないかを
tree でざっと俯瞰する使い方もあります。
・チーム内共有や問い合わせ時の状況説明
「このサーバの /var/www の中、どうなってる?」と聞かれたときに、
tree -L 3 の出力があるだけで説明が一気に楽になります。
tree はシンプルですが、深さ制限(-L)と除外(-I)を覚えると一気に実務で使いやすくなります。
出力が長すぎると逆に読みにくくなるので、「見せたい範囲に絞る」のがポイントです。
| short option | long option | description |
|---|---|---|
| -a | --all | 隠しファイル(ドットファイル)も含めて表示する |
| -d | --dirs-only | ファイルを表示せずディレクトリのみを表示する |
| -L | 表示する階層の深さを指定する(例: -L 2) | |
| -f | 各エントリをフルパスで表示する | |
| -s | ファイルサイズを表示する | |
| -D | 最終更新時刻を表示する | |
| -I | 指定したパターンに一致するファイルやディレクトリを除外して表示する(例: -I "node_modules|.git") | |
| -P | 指定したパターンに一致するものだけを表示する(フィルタ) | |
| -p | パーミッション情報を表示する | |
| -u | 所有ユーザ名を表示する | |
| -g | 所有グループ名を表示する | |
| -F | エントリの種別を末尾記号で示す(例: / * @ など) | |
| --dirsfirst | ディレクトリを先に表示して見やすくする | |
| -h | --help | tree コマンドの使い方(ヘルプ)を表示して終了する |
| --version | tree コマンドのバージョン情報を表示して終了する |
ここでは、一般的に利用される tree コマンドの主なオプションを TablePress の表としてまとめている想定です。
利用できるオプションや挙動はバージョンや環境によって差があるため、必要に応じて man tree で確認してください。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。
