はじめに

こんにちは!今回はtreeコマンドについて学んでいきましょう。

treeは、ディレクトリ構造をツリー形式でビジュアルに表示するコマンドです。ls -Rだと見づらいけど、treeならディレクトリのネスト構造が一目瞭然。プロジェクト全体の構成を確認する時に超便利です。

treeコマンドとは

treeコマンドは、指定したディレクトリ以下の全ファイルとサブディレクトリをツリー形式で表示する外部コマンドです。視覚的にディレクトリ構造がわかり、階層関係が明確に表示されます。

ディレクトリの中身を素早く把握したい時や、ドキュメント化する時に欠かせないツール。

基本構文

1
tree [オプション] [ディレクトリ]

オプションがなければカレントディレクトリから表示されます。

主なオプション

オプション 説明
-L 表示の深さを制限
-d ディレクトリのみ表示
-a 隠しファイルも表示
-I パターンに合うファイルを除外
-s ファイルサイズを表示
-h ファイルサイズを人間が読みやすく
-C 色付き表示

使用例

例1: 基本的な使い方(カレントディレクトリ)

1
tree

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
.
├── Desktop
├── Documents
│   ├── project1
│   │   ├── README.md
│   │   └── src
│   │       └── main.py
│   └── report.txt
├── Downloads
└── Pictures
    ├── photo1.jpg
    └── photo2.jpg

5 directories, 6 files

ディレクトリ構造がツリー形式で表示されます。

例2: 特定のディレクトリを表示

1
tree /var/log

実行結果:

1
2
3
4
5
6
7
8
9
/var/log
├── auth.log
├── syslog
├── apache2
│   ├── access.log
│   └── error.log
└── user.log

1 directory, 4 files

指定したディレクトリのツリーが表示されます。

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

1
tree -d

実行結果:

1
2
3
4
5
6
7
8
9
.
├── Desktop
├── Documents
│   ├── project1
│   │   └── src
│   └── another
└── Downloads

4 directories

ディレクトリだけが表示されます。ファイルは除外されます。

例4: 深さを制限(-Lオプション)

1
tree -L 2

実行結果:

1
2
3
4
5
6
7
8
.
├── Desktop
├── Documents
│   ├── project1
│   └── report.txt
└── Downloads

3 directories, 1 file

2階層までのみ表示されます。深いディレクトリは見やすくなります。

例5: 隠しファイルも表示(-aオプション)

1
tree -a

実行結果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
.
├── .bashrc
├── .config
│   └── settings.conf
├── Desktop
├── Documents
│   └── project1
└── .hidden_folder

5 directories, 3 files

.で始まる隠しファイルやディレクトリも表示されます。

例6: ファイルサイズを表示(-sオプション)

1
tree -s

実行結果:

1
2
3
4
5
6
7
8
9
.
├── [   4096]  Desktop
├── [   4096]  Documents
│   ├── [   4096]  project1
│   │   └── [   1234]  README.md
│   └── [   2048]  report.txt
└── [   4096]  Downloads

4 directories, 2 files

各ファイル・ディレクトリのサイズが表示されます。

例7: サイズを人間が読みやすく表示(-hオプション)

1
tree -s -h

実行結果:

1
2
3
4
5
6
7
8
9
.
├── [4.0K]  Desktop
├── [4.0K]  Documents
│   ├── [4.0K]  project1
│   │   └── [1.2K]  README.md
│   └── [2.0K]  report.txt
└── [4.0K]  Downloads

4 directories, 2 files

サイズがKMの単位で表示され、読みやすくなります。

例8: 特定のパターンを除外(-Iオプション)

1
tree -I 'node_modules|__pycache__'

実行結果:

1
2
3
4
5
6
7
8
9
.
├── src
│   ├── main.py
│   └── utils.py
├── tests
│   └── test_main.py
└── README.md

3 directories, 3 files

node_modules__pycache__が表示されません。

Tips・注意点

treeコマンドがない場合

treeコマンドはデフォルトではインストールされていない場合があります。

1
2
3
4
5
6
7
8
# Ubuntuの場合
sudo apt-get install tree

# CentOSの場合
sudo yum install tree

# Macの場合
brew install tree

深いディレクトリを見やすくする

1
tree -L 1 -d

1階層のディレクトリだけを見ると、プロジェクト構造が一目瞭然。

ファイル数が多い場合

1
tree | less

lessでページング表示すると、大量のファイルでも見やすい。

出力をファイルに保存

1
tree > structure.txt

ドキュメント化する際に便利です。

Gitで無視されるファイルを除外

1
tree -I '\.git'

.gitディレクトリを除外して表示。

実践的な使い方

プロジェクト構造の確認

1
tree -L 2 -s -h

プロジェクトの全体像とファイルサイズを確認。

ドキュメント用の構造図を生成

1
tree -L 3 > project_structure.txt

READMEなどのドキュメントに貼り付けるプロジェクト構造を生成。

大きなファイルを見つける

1
tree -s -h | grep -E '[0-9]+M'

MBサイズのファイルを見つけます。容量を圧迫するファイルの発見に便利。

バックアップ前の確認

1
tree -a /path/to/backup | head -50

バックアップ対象のディレクトリ構造を確認。最初の50行だけ表示。

カラフルに表示

1
tree -C

ディレクトリは青、実行ファイルは緑など、色付きで表示されます。ターミナルが対応していれば自動的に色が付く場合もあります。

まとめ

treeコマンドのポイント:

  • ディレクトリ構造をツリー形式で表示する外部コマンド
  • -Lで表示の深さを制限可能
  • -dでディレクトリのみ表示
  • -s -hでファイルサイズを見やすく表示
  • -Iで特定のパターンを除外
  • -aで隠しファイルも表示
  • プロジェクト構造の確認やドキュメント化に便利

treeコマンドは、ディレクトリ構造を素早く把握するための最強ツール。ls -Rの代わりに使えば、作業効率がぐっと上がりますよ!