tree – ディレクトリ構造をツリー形式で表示するコマンド

検索・探索

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 系では yumdnf、macOS では Homebrew を使ってインストールできます。

一度インストールすれば以降は通常のコマンドとして利用できます。

tree コマンドの実務での使いどころ

tree コマンドは単なる表示ツールではなく、実務でもよく使われます。

  • プロジェクト構成の共有
  • README や設計書への構成記載
  • サーバー構成の調査
  • ディレクトリ設計の確認
  • 配布物の内容確認

出力結果をファイルに保存すれば、構成図としてそのまま資料に利用することもできます。

ls や find との違い

ファイル操作では lsfind といったコマンドもよく使われますが、用途が異なります。

  • ls → ファイルの一覧表示
  • tree → ディレクトリ構造の表示
  • find → 条件を指定した検索

構造を確認したい場合は tree、条件検索は find、単純な一覧表示は ls を使い分けます。

関連コマンド

  • ls : ファイルやディレクトリを一覧表示
  • find : 条件を指定してファイルを検索
  • du : ディレクトリやファイルのサイズを表示

備考

  • tree は多くの Linux ディストリビューションではデフォルトで入っていない場合があり、利用するにはインストールが必要です。
    • Debian/Ubuntu 系: sudo apt install tree
    • RedHat/CentOS 系: sudo yum install tree
  • 大規模なディレクトリで実行すると出力が膨大になるため、-L で深さ制御するのが一般的です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント