Linuxでディレクトリ構造を見やすく確認したいときは、treeコマンドを使用します。
lsコマンドでもファイルやディレクトリの一覧は確認できますが、階層構造までは一目で分かりにくいことがあります。
treeコマンドを使うと、ディレクトリとファイルの関係をツリー形式で表示できるため、プロジェクト構成、設定ファイルの場所、ログディレクトリの中身などを視覚的に把握しやすくなります。
この記事では、Linux初心者でも実際に使えるように、treeコマンドのインストール方法、基本構文、階層の深さを指定する方法、隠しファイルの表示、ディレクトリのみの表示、容量や権限の表示、lsやfindとの違いまで実例付きで解説します。
- treeコマンドとは
- treeコマンドがない場合のインストール方法
- treeコマンドの基本構文
- 現在のディレクトリ構造を表示する方法
- 特定のディレクトリを指定する方法
- 階層の深さを指定する方法
- 隠しファイルを表示する方法
- ディレクトリだけを表示する方法
- フルパスで表示する方法
- 権限を表示する方法
- 所有者を表示する方法
- ファイルサイズを表示する方法
- ディレクトリ容量も含めて表示する方法
- 表示するファイルをパターンで絞り込む方法
- 特定のファイルやディレクトリを除外する方法
- ファイル数が多いときに見やすく表示する方法
- HTML形式で出力する方法
- treeコマンドの主なオプション
- treeとlsコマンドの違い
- treeとfindコマンドの違い
- treeとduコマンドの違い
- treeコマンドの実用例
- treeコマンドでよくあるエラー
- よくある質問
- まとめ
treeコマンドとは
treeは、ディレクトリ構造をツリー形式で表示するLinuxコマンドです。
たとえば、次のようなディレクトリ構成があるとします。
project/
├── app.py
├── config/
│ └── settings.conf
└── logs/
└── app.log
このように、ファイルやディレクトリの階層関係を見やすく表示できます。
主に次のような場面で使います。
- ディレクトリ構造を確認したいとき
- プロジェクトのファイル構成を把握したいとき
- 設定ファイルやログファイルの場所を整理したいとき
- ブログ記事や手順書にフォルダ構成を載せたいとき
- 不要なファイルや深すぎる階層を確認したいとき
treeコマンドがない場合のインストール方法
treeコマンドは、環境によっては最初から入っていない場合があります。
まず、使えるか確認します。
tree --version
コマンドが見つからない場合は、利用しているディストリビューションに合わせてインストールします。
Ubuntu・Debianの場合
sudo apt update
sudo apt install tree
CentOS Stream・Rocky Linux・AlmaLinuxの場合
sudo dnf install tree
古い環境ではyumを使う場合もあります。
sudo yum install tree
インストール後、次のコマンドで確認します。
tree --version
treeコマンドの基本構文
treeコマンドの基本構文は次のとおりです。
tree [オプション] [ディレクトリ]
現在のディレクトリ構造を表示する場合は、次のように実行します。
tree
特定のディレクトリを指定する場合は、次のように実行します。
tree /var/log
指定したディレクトリ配下の構造がツリー形式で表示されます。
現在のディレクトリ構造を表示する方法
現在のディレクトリ配下をツリー形式で表示するには、単純にtreeを実行します。
tree
実行結果の例です。
.
├── app.py
├── config
│ └── settings.conf
├── logs
│ └── app.log
└── README.md
2 directories, 4 files
最後には、ディレクトリ数とファイル数も表示されます。
特定のディレクトリを指定する方法
対象ディレクトリを指定して表示できます。
tree /etc/nginx
実行結果の例です。
/etc/nginx
├── conf.d
│ └── default.conf
├── nginx.conf
└── sites-enabled
2 directories, 2 files
設定ファイルの配置やディレクトリ構成を確認したいときに便利です。
階層の深さを指定する方法
大きなディレクトリでtreeを実行すると、出力が多くなりすぎることがあります。
その場合は、-Lオプションで表示する階層の深さを指定します。
tree -L 1
実行結果の例です。
.
├── app.py
├── config
├── logs
└── README.md
2 directories, 2 files
-L 1は、現在のディレクトリ直下だけを表示します。
2階層まで表示したい場合は、次のように実行します。
tree -L 2
ディレクトリ構造をざっくり確認したいときは、まずtree -L 2やtree -L 3を使うと見やすくなります。
隠しファイルを表示する方法
通常のtreeでは、ドットで始まる隠しファイルや隠しディレクトリは表示されません。
隠しファイルも表示したい場合は、-aオプションを使用します。
tree -a
実行結果の例です。
.
├── .env
├── .git
│ └── config
├── app.py
└── README.md
.envや.gitなど、通常は表示されないファイルも確認できます。
ただし、.gitなどを含めると出力が非常に多くなることがあるため、必要に応じて除外オプションも使います。
ディレクトリだけを表示する方法
ファイルを表示せず、ディレクトリ構造だけを確認したい場合は-dを使用します。
tree -d
実行結果の例です。
.
├── config
├── logs
└── tmp
3 directories
フォルダ構成だけを把握したい場合に便利です。
フルパスで表示する方法
-fオプションを使うと、各ファイルやディレクトリをフルパス付きで表示できます。
tree -f /var/log
実行結果の例です。
/var/log
├── /var/log/auth.log
├── /var/log/nginx
│ └── /var/log/nginx/access.log
└── /var/log/syslog
ファイルの場所を正確に確認したいときに使えます。
権限を表示する方法
-pオプションを使うと、ファイルやディレクトリのパーミッションを表示できます。
tree -p
実行結果の例です。
.
├── [-rw-r--r--] app.py
├── [drwxr-xr-x] config
└── [-rw-r--r--] README.md
どのファイルに実行権限があるか、ディレクトリの権限がどうなっているかをざっくり確認できます。
所有者を表示する方法
-uオプションを使うと、所有ユーザーを表示できます。
tree -u
グループも表示したい場合は、-gを使います。
tree -ug
権限や所有者の確認をしたい場合は、-pと組み合わせると分かりやすくなります。
tree -pug
ファイルサイズを表示する方法
-sオプションを使うと、ファイルサイズを表示できます。
tree -s
実行結果の例です。
.
├── [ 120] app.py
├── [ 4096] config
└── [ 1024] README.md
読みやすい単位で表示したい場合は、-hも組み合わせます。
tree -sh
実行結果の例です。
.
├── [120B] app.py
├── [4.0K] config
└── [1.0K] README.md
ファイルサイズを見ながら構成を確認したいときに便利です。
ディレクトリ容量も含めて表示する方法
treeには、ディレクトリごとの容量を集計して表示する--duオプションがあります。
tree --du -h
実行結果の例です。
.
├── [4.0K] app.py
├── [8.0K] config
│ └── [4.0K] settings.conf
└── [12K] logs
└── [8.0K] app.log
ただし、容量確認を本格的に行う場合は、前回解説したduコマンドの方が向いています。
du -h --max-depth=1 .
tree --duは、構造と容量をざっくり同時に見たいときに便利です。
表示するファイルをパターンで絞り込む方法
-Pオプションを使うと、指定したパターンに一致するファイルを表示できます。
tree -P "*.log"
.logで終わるファイルを探したい場合などに使えます。
ただし、検索目的で本格的に探す場合は、findコマンドの方が柔軟です。
find . -name "*.log"
特定のファイルやディレクトリを除外する方法
-Iオプションを使うと、指定したパターンを除外できます。
tree -I "node_modules"
複数のパターンを除外したい場合は、縦棒|で区切ります。
tree -I "node_modules|.git|cache"
node_modulesや.gitなど、出力が多くなりやすいディレクトリを除外すると見やすくなります。
ファイル数が多いときに見やすく表示する方法
大きなディレクトリでは、treeの出力が非常に長くなることがあります。
その場合は、次のように階層制限や除外を組み合わせます。
tree -L 2 -I "node_modules|.git|cache"
隠しファイルも含めたい場合は-aを追加します。
tree -a -L 2 -I ".git|node_modules"
プロジェクト全体を確認するときは、まず浅い階層から見るのがおすすめです。
HTML形式で出力する方法
-Hオプションを使うと、ツリー構造をHTML形式で出力できます。
tree -H .
ファイルへ保存する場合は、リダイレクトを使います。
tree -H . > tree.html
ディレクトリ構造を簡易的なHTMLページとして確認したい場合に使えます。
treeコマンドの主なオプション
| オプション | 説明 |
|---|---|
-L 数字 |
表示する階層の深さを指定する |
-a |
隠しファイルも表示する |
-d |
ディレクトリのみ表示する |
-f |
フルパスで表示する |
-p |
パーミッションを表示する |
-u |
所有ユーザーを表示する |
-g |
所有グループを表示する |
-s |
ファイルサイズを表示する |
-h |
読みやすい単位でサイズを表示する |
--du |
ディレクトリ容量を集計して表示する |
-P パターン |
指定したパターンに一致するファイルを表示する |
-I パターン |
指定したパターンを除外する |
-H |
HTML形式で出力する |
treeとlsコマンドの違い
treeとlsは、どちらもファイルやディレクトリを確認するためのコマンドです。
ただし、得意なことが違います。
| コマンド | 主な用途 |
|---|---|
ls |
現在のディレクトリ内の一覧を表示する |
tree |
ディレクトリ構造を階層表示する |
単純に一覧を見たい場合はls、階層構造を見たい場合はtreeが向いています。
treeとfindコマンドの違い
treeとfindも混同しやすいコマンドです。
treeは構造を見やすく表示するコマンドです。
findは条件に合うファイルやディレクトリを検索するコマンドです。
| コマンド | 主な用途 |
|---|---|
tree |
ディレクトリ構造を見やすく表示する |
find |
条件を指定してファイルを検索する |
構造を把握したいならtree、条件に合うファイルを探したいならfindを使います。
treeとduコマンドの違い
tree --duを使うと容量も表示できますが、容量調査が目的ならduコマンドが基本です。
| コマンド | 主な用途 |
|---|---|
tree |
ディレクトリ構造を見やすく表示する |
du |
ファイルやディレクトリのディスク使用量を確認する |
構造と容量をざっくり同時に見たい場合はtree --du -h、容量不足の原因を詳しく調べる場合はduを使いましょう。
treeコマンドの実用例
プロジェクト構成を確認する
tree -L 2
プロジェクトの全体構成を浅い階層で確認できます。
隠しファイルも含めて確認する
tree -a -L 2
.envや.gitignoreなども確認できます。
不要なディレクトリを除外する
tree -L 3 -I "node_modules|.git|cache"
出力が多くなりやすいディレクトリを除外して見やすくできます。
ディレクトリだけを表示する
tree -d
フォルダ構成だけを確認したい場合に便利です。
サイズ付きで構造を確認する
tree -sh
ファイルサイズを見ながら構造を確認できます。
treeコマンドでよくあるエラー
command not found
tree: command not found
treeコマンドがインストールされていません。
Ubuntu・Debianでは次のようにインストールします。
sudo apt update
sudo apt install tree
CentOS Stream・Rocky Linux・AlmaLinuxでは次のようにインストールします。
sudo dnf install tree
Permission denied
[error opening dir]
対象ディレクトリを読み取る権限がない場合に表示されることがあります。
必要に応じて権限を確認します。
ls -ld 対象ディレクトリ
出力が多すぎる
階層が深いディレクトリで実行すると、出力が多くなりすぎることがあります。
-Lで階層を制限しましょう。
tree -L 2
.gitやnode_modulesが大量に表示される
隠しファイルや依存ライブラリのディレクトリが多い場合は、-Iで除外します。
tree -a -L 2 -I ".git|node_modules"
よくある質問
treeコマンドは何に使いますか?
ディレクトリやファイルの階層構造をツリー形式で表示するために使います。プロジェクト構成やフォルダ構成を確認したいときに便利です。
treeコマンドが使えない場合はどうすればよいですか?
インストールされていない可能性があります。Ubuntu・Debianではsudo apt install tree、CentOS Stream・Rocky Linux・AlmaLinuxではsudo dnf install treeでインストールできます。
階層の深さを指定できますか?
はい。-Lオプションを使用します。
tree -L 2
隠しファイルも表示できますか?
-aオプションを使うと、ドットで始まる隠しファイルや隠しディレクトリも表示できます。
tree -a
ディレクトリだけを表示できますか?
-dオプションを使うと、ファイルを除外してディレクトリだけを表示できます。
tree -d
node_modulesや.gitを除外できますか?
-Iオプションで除外できます。
tree -I "node_modules|.git"
treeとfindの違いは何ですか?
treeはディレクトリ構造を見やすく表示するコマンドです。findは条件を指定してファイルやディレクトリを検索するコマンドです。
treeで容量も確認できますか?
--duや-sを使うと容量表示もできます。ただし、容量不足の詳しい調査にはduコマンドの方が向いています。
UbuntuやCentOS Streamでも使えますか?
はい。インストールすれば、Ubuntu、Debian、CentOS Stream、Rocky Linux、AlmaLinuxなどで利用できます。
まとめ
treeコマンドは、Linuxでディレクトリ構造をツリー形式で表示するためのコマンドです。
現在のディレクトリ構造を表示する場合は、次のように実行します。
tree
階層の深さを指定したい場合は、-Lを使います。
tree -L 2
隠しファイルも表示したい場合は、-aを使います。
tree -a
ディレクトリだけを表示したい場合は、-dを使います。
tree -d
不要なディレクトリを除外したい場合は、-Iを使います。
tree -I "node_modules|.git"
treeは、プロジェクト構成やディレクトリ階層を視覚的に把握したいときに便利です。
lsは一覧表示、findは検索、duは容量確認、treeは構造の確認というように使い分けると、Linuxでのファイル管理がかなり分かりやすくなります。




コメント