[Linux] treeコマンドの使い方 – ディレクトリをツリー形式で表示

treeコマンドは、ディレクトリ構造をツリー形式で表示するためのLinuxコマンドです。

基本的な使い方は、ターミナルで tree と入力するだけで、カレントディレクトリの内容が階層的に表示されます。

特定のディレクトリを指定する場合は「tree ディレクトリ名」とします。

オプションとして -L で表示する階層の深さを指定でき、 -a で隠しファイルも表示可能です。

-f を使うとフルパスで表示されます。

この記事でわかること
  • treeコマンドの基本的な使い方と主要オプション
  • 応用的な使い方や他のコマンドとの連携方法
  • 出力結果のカスタマイズ方法とオプションの活用
  • 特定のファイルやディレクトリの表示方法
  • treeコマンドのインストールやトラブルシューティング

目次から探す

treeコマンドとは

treeコマンドは、LinuxやUnix系のシステムでディレクトリ構造をツリー形式で視覚的に表示するためのコマンドです。

通常、ファイルやディレクトリの一覧を表示する際にはlsコマンドが使われますが、treeコマンドを使うと、ディレクトリの階層構造を直感的に把握することができます。

特に、複数のサブディレクトリが存在する場合や、ディレクトリの中にどのようなファイルが含まれているかを一目で確認したい場合に便利です。

treeコマンドは、デフォルトではカレントディレクトリから開始し、すべてのサブディレクトリとファイルを再帰的に表示します。

また、さまざまなオプションを使うことで、表示する階層の深さを制限したり、特定のファイルタイプのみを表示したりすることも可能です。

基本的なオプションの使い方

treeコマンドには、さまざまなオプションが用意されており、表示内容をカスタマイズすることができます。

ここでは、よく使われる基本的なオプションについて解説します。

-Lオプション:表示する階層の深さを指定

-Lオプションを使うと、表示するディレクトリの階層の深さを指定できます。

デフォルトではすべての階層が表示されますが、-Lオプションを使うことで、指定した階層までのディレクトリとファイルのみを表示します。

tree -L 2

上記の例では、2階層目までのディレクトリとファイルが表示されます。

.
├── dir1
│   ├── file1
│   └── file2
├── dir2
└── file3

-aオプション:隠しファイルを表示

-aオプションを使うと、通常は表示されない隠しファイル(.で始まるファイル)も表示されます。

隠しファイルを含めてディレクトリ構造を確認したい場合に便利です。

tree -a
.
├── .hiddenfile
├── dir1
│   └── file1
└── file2

-fオプション:フルパスで表示

-fオプションを使うと、各ファイルやディレクトリのフルパスを表示します。

ファイルの場所を明確にしたい場合に役立ちます。

tree -f
.
├── ./dir1
│   └── ./dir1/file1
└── ./file2

-dオプション:ディレクトリのみを表示

-dオプションを使うと、ファイルを無視してディレクトリのみを表示します。

ディレクトリ構造だけを確認したい場合に便利です。

tree -d
.
├── dir1
└── dir2

-hオプション:ファイルサイズを人間が読みやすい形式で表示

-hオプションを使うと、ファイルサイズがバイト単位ではなく、KBやMBなどの人間が読みやすい形式で表示されます。

tree -h
.
├── [4.0K]  dir1
│   └── [1.2K]  file1
└── [2.0K]  file2

-pオプション:ファイルのパーミッションを表示

-pオプションを使うと、各ファイルやディレクトリのパーミッション(アクセス権)が表示されます。

ファイルの権限を確認したい場合に便利です。

tree -p
.
├── [drwxr-xr-x]  dir1
│   └── [-rw-r--r--]  file1
└── [-rw-r--r--]  file2

-tオプション:ファイルを作成日時順に表示

-tオプションを使うと、ファイルやディレクトリが作成された日時順に表示されます。

新しいファイルやディレクトリを確認したい場合に便利です。

tree -t
.
├── dir1
│   └── file1
└── file2

応用的な使い方

treeコマンドは基本的な使い方だけでなく、応用的な使い方も可能です。

ここでは、特定のファイルタイプの表示や、他のコマンドとの組み合わせ、出力結果の保存など、より高度な使い方を紹介します。

特定のファイルタイプのみを表示する

treeコマンドでは、-Pオプションを使って特定のファイルタイプ(拡張子)をフィルタリングして表示することができます。

例えば、.txtファイルのみを表示したい場合は以下のようにします。

tree -P "*.txt"
.
├── dir1
│   └── file1.txt
└── file2.txt

このように、-Pオプションにワイルドカードを使って、特定のパターンに一致するファイルだけを表示できます。

出力結果をファイルに保存する

treeコマンドの出力結果をファイルに保存したい場合は、リダイレクトを使います。

以下の例では、treeコマンドの結果をoutput.txtというファイルに保存します。

tree > output.txt

このコマンドを実行すると、ツリー構造がoutput.txtに保存され、後で確認することができます。

grepと組み合わせて特定のファイルを検索

treeコマンドの出力結果をgrepコマンドと組み合わせることで、特定のファイル名やディレクトリ名を検索することができます。

例えば、file1という名前のファイルを検索する場合は以下のようにします。

tree | grep "file1"
│   └── file1.txt

このように、grepを使うことで、ツリー構造の中から特定のファイルやディレクトリを簡単に見つけることができます。

シンボリックリンクを表示する

treeコマンドは、デフォルトでシンボリックリンクを表示しますが、リンク先のファイルやディレクトリも表示したい場合は、-lオプションを使います。

tree -l
.
├── dir1
│   └── file1 -> /path/to/realfile
└── file2

このように、シンボリックリンクがどのファイルやディレクトリを指しているかを確認することができます。

色付きで表示する

treeコマンドは、デフォルトで色付きの出力をサポートしています。

色付き表示は、ファイルやディレクトリの種類に応じて異なる色で表示されるため、視覚的に区別しやすくなります。

もし色付き表示が無効になっている場合は、-Cオプションを使って強制的に色を有効にすることができます。

tree -C

このオプションを使うと、ディレクトリは青色、シンボリックリンクは緑色など、ファイルの種類に応じた色で表示されます。

treeコマンドの実行結果をカスタマイズ

treeコマンドは、さまざまなオプションを使って出力結果をカスタマイズすることができます。

ここでは、文字エンコーディングの指定や、ディレクトリの表示順序、空のディレクトリの非表示など、出力結果をより見やすくするためのオプションを紹介します。

–charsetオプションで文字エンコーディングを指定

--charsetオプションを使うと、出力結果の文字エンコーディングを指定することができます。

デフォルトではシステムのロケールに依存しますが、特定のエンコーディングを指定したい場合に便利です。

例えば、UTF-8で出力したい場合は以下のようにします。

tree --charset utf-8

このオプションは、特に異なるエンコーディングを使用するシステム間でファイル構造を確認する際に役立ちます。

–noreportオプションでファイル数の統計を非表示にする

treeコマンドは、デフォルトでディレクトリの最後にファイル数やディレクトリ数の統計情報を表示しますが、--noreportオプションを使うと、この統計情報を非表示にすることができます。

tree --noreport
.
├── dir1
│   └── file1
└── file2

このオプションを使うと、出力がシンプルになり、ファイル数やディレクトリ数が不要な場合に便利です。

–dirsfirstオプションでディレクトリを先に表示

--dirsfirstオプションを使うと、ディレクトリをファイルよりも先に表示することができます。

デフォルトでは、ファイルとディレクトリはアルファベット順に表示されますが、このオプションを使うと、ディレクトリが優先的に表示されます。

tree --dirsfirst
.
├── dir1
│   └── file1
└── file2

このオプションは、ディレクトリ構造を優先的に確認したい場合に便利です。

–pruneオプションで空のディレクトリを非表示にする

--pruneオプションを使うと、空のディレクトリを出力結果から非表示にすることができます。

空のディレクトリが多い場合や、実際にファイルが存在するディレクトリだけを確認したい場合に便利です。

tree --prune
.
└── dir1
    └── file1

このオプションを使うと、空のディレクトリが出力されないため、必要な情報だけを効率的に確認できます。

treeコマンドの実行結果を他のコマンドと連携

treeコマンドは、他のコマンドと組み合わせることで、さらに便利に使うことができます。

ここでは、lessgrepfindxargsなどのコマンドと連携して、treeコマンドの出力を効率的に活用する方法を紹介します。

lessコマンドでページング表示

treeコマンドの出力が長くなりすぎて、画面に収まりきらない場合は、lessコマンドと組み合わせてページング表示を行うことができます。

これにより、出力をスクロールしながら確認することが可能です。

tree | less

このコマンドを実行すると、lessのインターフェースでtreeの出力を確認でき、jkキーで上下にスクロールできます。

大量のファイルやディレクトリがある場合に便利です。

grepコマンドで特定のファイルをフィルタリング

treeコマンドの出力結果をgrepコマンドと組み合わせることで、特定のファイルやディレクトリをフィルタリングして表示することができます。

例えば、logという名前が含まれるファイルやディレクトリを検索する場合は以下のようにします。

tree | grep "log"
│   └── error_log.txt

このように、grepを使うことで、ツリー構造の中から特定のファイルやディレクトリを簡単に見つけることができます。

findコマンドとの違いと使い分け

treeコマンドとfindコマンドは、どちらもディレクトリ構造を表示するために使われますが、用途が異なります。

treeは視覚的にディレクトリ構造を確認するためのコマンドで、階層構造をツリー形式で表示します。

一方、findは、特定の条件に一致するファイルやディレクトリを検索するためのコマンドです。

例えば、findコマンドで特定の拡張子を持つファイルを検索する場合は以下のようにします。

find . -name "*.txt"
./dir1/file1.txt
./file2.txt

treeは視覚的な確認に適しており、findは検索や条件指定に強いという違いがあります。

用途に応じて使い分けると良いでしょう。

xargsコマンドでファイルを一括処理

treeコマンドの出力結果をxargsコマンドと組み合わせることで、ファイルを一括処理することができます。

例えば、treeコマンドで表示されたファイルを一括で削除したい場合は、以下のようにします。

tree -if --noreport | grep ".txt" | xargs rm

このコマンドは、まずtreeコマンドでファイルのフルパスを表示し、grep.txtファイルをフィルタリングし、xargsでそのファイルをrmコマンドに渡して削除します。

xargsを使うことで、treeコマンドの出力結果を他のコマンドに渡して一括処理が可能になります。

よくある質問

treeコマンドが見つからない場合はどうすればいいですか?

treeコマンドがインストールされていない場合、ターミナルでtree: command not foundというエラーメッセージが表示されます。

この場合、treeコマンドをインストールする必要があります。

以下のコマンドを使ってインストールできます。

  • UbuntuやDebian系の場合:
  sudo apt install tree
  • CentOSやRed Hat系の場合:
  sudo yum install tree

インストール後、再度treeコマンドを実行してみてください。

隠しファイルが表示されないのはなぜですか?

デフォルトでは、treeコマンドは隠しファイル(.で始まるファイル)を表示しません。

隠しファイルを表示するには、-aオプションを使用する必要があります。

以下のコマンドを実行して、隠しファイルを含めたディレクトリ構造を表示してください。

tree -a

このオプションを使うことで、隠しファイルも含めてすべてのファイルが表示されます。

出力結果が長すぎて見づらい場合、どうすればいいですか?

treeコマンドの出力が長すぎて見づらい場合、いくつかの方法で対処できます。

  1. lessコマンドでページング表示

treeコマンドの出力をlessコマンドと組み合わせて、ページング表示することができます。

以下のコマンドを使って、出力をスクロールしながら確認できます。

   tree | less
  1. -Lオプションで表示する階層を制限

-Lオプションを使って、表示するディレクトリの階層を制限することができます。

例えば、2階層まで表示したい場合は以下のようにします。

   tree -L 2

これらの方法を使うことで、出力結果をより見やすくすることができます。

まとめ

この記事では、treeコマンドの基本的な使い方から応用的なオプション、他のコマンドとの連携方法までを詳しく解説しました。

treeコマンドを使うことで、ディレクトリ構造を視覚的に把握しやすくなり、さまざまなオプションを駆使することで、より効率的にファイルやディレクトリを管理できるようになります。

treeコマンドを活用して、日々の作業をよりスムーズに進めてみてください。

  • URLをコピーしました!
目次から探す