tree コマンドは、ディレクトリやファイルの構造を階層形式(ツリー形式)で表示するコマンドです。
通常の ls コマンドはファイルを一覧で表示しますが、tree はフォルダの親子関係を含めて構造として確認できます。
プロジェクトの構成確認やサーバー内のファイル配置の把握、配布物の内容確認など、ディレクトリ構造を視覚的に理解したい場面で利用されます。
tree コマンドでできること
tree コマンドを使うと、次のような用途で役立ちます。
- フォルダ構成の全体像を確認する
- プロジェクトのディレクトリ構造を説明する
- サーバー内のファイル配置を調査する
- 配布されたファイルの中身を確認する
- ドキュメント用の構成図を生成する
特に、開発環境やサーバー運用ではディレクトリの構造を把握する作業が多いため、頻繁に使用されるコマンドの一つです。
基本の使い方
tree コマンドは、引数を指定しない場合は現在のディレクトリ(カレントディレクトリ)の構造を表示します。
指定したディレクトリの構造を確認したい場合は、対象のパスを引数として指定します。
階層ごとにインデントされた形式で表示されるため、フォルダの関係性が一目で分かります。
ディレクトリの数が多い場合は出力が大量になるため、表示階層を制限するオプションと組み合わせて使用することが一般的です。
構文(Syntax)
tree [オプション] [ディレクトリ]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 指定ディレクトリをツリー形式で表示 | tree |
-L n | 表示する深さを制限 | tree -L 2 |
-a | 隠しファイルを含めて表示 | tree -a |
-d | ディレクトリのみ表示 | tree -d |
-f | フルパスで表示 | tree -f |
-i | インデント記号を使わず表示 | tree -i |
-s | ファイルサイズを表示 | tree -s |
-h | サイズを人間に読みやすい形式で表示(KB/MB/GB) | tree -h |
-p | パーミッションを表示 | tree -p |
-u | 所有者を表示 | tree -u |
-g | グループを表示 | tree -g |
-t | 更新時刻を表示 | tree -t |
--noreport | 最後のファイル/ディレクトリ数のサマリを表示しない | tree --noreport |
実行結果の見方
tree の出力結果では、インデントによって階層構造が表現されます。
- 上位ディレクトリが左側に表示される
- 下位ディレクトリほど右側にずれて表示される
- 記号はディレクトリの分岐を表している
この表示によって、どのフォルダの中にどのファイルがあるかを視覚的に把握できます。
プロジェクト構成の確認やファイル配置の整理に便利です。
カレントディレクトリを表示
tree
出力例:
.
├── file1.txt
├── file2.log
└── dir1
└── nested.txt
1 directory, 3 files
深さを制限(2階層まで)
tree -L 2
ディレクトリだけ表示
tree -d
出力例:
.
├── dir1
└── dir2
フルパスで表示
tree -f
出力例:
.
├── ./file1.txt
├── ./dir1/nested.txt
サイズや権限を表示
tree -ph
出力例:
.
├── [4.0K] [drwxr-xr-x] dir1
│ └── [1.2K] [-rw-r--r--] nested.txt
└── [1.0K] [-rw-r--r--] file1.txt
隠しファイルも含めて表示
tree -a
エラー例(存在しないディレクトリ)
tree notfound
出力例:
tree: 'notfound' のディレクトリを開けません: No such file or directory
表示階層を制限する理由(-L オプションの説明)
ディレクトリ数が多い環境では、tree をそのまま実行すると大量の出力が表示されます。
表示内容が多すぎると必要な情報を探しにくくなるため、階層を制限して確認することがよくあります。
-L オプションを使うと表示する深さを指定でき、指定した階層までの構造のみ確認できます。
大規模なプロジェクトやサーバー環境で特に有効です。
隠しファイルを表示する理由(-a の説明)
Linux や macOS では、. から始まるファイルは通常の一覧表示では表示されません。
設定ファイルやシステム関連ファイルは隠しファイルとして管理されることが多いため、環境調査や設定確認では隠しファイルの表示が必要になることがあります。
-a オプションを使うと、隠しファイルを含めたすべてのファイル構造を確認できます。
ディレクトリのみ表示する用途(-d の説明)
ファイル数が多い環境では、ディレクトリ構造だけを確認したい場面があります。
例えば次のような場合です。
- フォルダ構成の整理
- プロジェクト構造の確認
- サーバーのディレクトリ設計の把握
-d オプションを使用するとファイルを除外してディレクトリのみ表示でき、構造の確認に集中できます。
ファイル情報を表示する用途(サイズ・権限など)
tree コマンドでは、ファイルサイズや権限などの情報も表示できます。
これにより単なる構造確認だけでなく、次のような用途にも利用できます。
- 容量の大きいファイルの調査
- パーミッション設定の確認
- 所有者やグループの確認
- ファイル管理状況の確認
サーバー管理やトラブル調査時に特に役立ちます。
tree コマンドがインストールされていない場合
Linux 環境では tree コマンドが標準でインストールされていないことがあります。command not found と表示された場合はパッケージをインストールする必要があります。
Ubuntu 系では apt、RedHat 系では yum や dnf、macOS では Homebrew を使ってインストールできます。
一度インストールすれば以降は通常のコマンドとして利用できます。
tree コマンドの実務での使いどころ
tree コマンドは単なる表示ツールではなく、実務でもよく使われます。
- プロジェクト構成の共有
- README や設計書への構成記載
- サーバー構成の調査
- ディレクトリ設計の確認
- 配布物の内容確認
出力結果をファイルに保存すれば、構成図としてそのまま資料に利用することもできます。
ls や find との違い
ファイル操作では ls や find といったコマンドもよく使われますが、用途が異なります。
- ls → ファイルの一覧表示
- tree → ディレクトリ構造の表示
- find → 条件を指定した検索
構造を確認したい場合は tree、条件検索は find、単純な一覧表示は ls を使い分けます。
関連コマンド
ls: ファイルやディレクトリを一覧表示find: 条件を指定してファイルを検索du: ディレクトリやファイルのサイズを表示
備考
treeは多くの Linux ディストリビューションではデフォルトで入っていない場合があり、利用するにはインストールが必要です。- Debian/Ubuntu 系:
sudo apt install tree - RedHat/CentOS 系:
sudo yum install tree
- Debian/Ubuntu 系:
- 大規模なディレクトリで実行すると出力が膨大になるため、
-Lで深さ制御するのが一般的です。
参考
- manページ: man tree
- Debian パッケージ: https://packages.debian.org/tree

コメント