Linuxコマンド一覧

treeコマンド|ディレクトリ構成を図で見る

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
tree を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

tree はディレクトリの中身を枝分かれの図で表示するコマンドです。深さを制限する `-L`、ディレクトリだけを見る `-d`、隠しファイルも出す `-a` の使い方を、ブラウザ上のターミナルで打ちながら確認できます。

最終更新: 2026-09-06

書式

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

ディレクトリを指定しなければ、いまいる場所を起点にします。

まず打ってみる

$ tree
.
├── docs
   └── guide.md
├── node_modules
   └── left-pad
       └── index.js
├── package.json
├── README.md
└── src
    ├── components
   └── Button.js
    ├── index.js
    └── utils.js

5 directories, 7 files

線でつながっているので、どのファイルがどのディレクトリに入っているかが一目で分かります。 最後の行に、ディレクトリとファイルの数が出ます。

深さを制限する

素の tree は下まで全部たどるので、node_modules のような大きなディレクトリがあると画面が埋まります。 -L で何階層まで見るかを決められます。

$ tree -L 1
.
├── docs
├── node_modules
├── package.json
├── README.md
└── src

3 directories, 2 files

-L 2 なら、その1つ下まで開きます。

$ tree -L 2
.
├── docs
   └── guide.md
├── node_modules
   └── left-pad
├── package.json
├── README.md
└── src
    ├── components
    ├── index.js
    └── utils.js

5 directories, 5 files

初めて触るプロジェクトでは、まず tree -L 2 から始めると全体像をつかめます。

ディレクトリだけを見る

-d を付けると、ファイルを省いてディレクトリだけを描きます。

$ tree -d
.
├── docs
├── node_modules
   └── left-pad
└── src
    └── components

5 directories

「どこに何が置かれているか」ではなく「どういう構成か」を知りたいときは、これが一番速いです。

一部だけを見る

ディレクトリを渡すと、そこを起点にします。

$ tree src
src
├── components
   └── Button.js
├── index.js
└── utils.js

1 directory, 3 files

隠しファイルも出す

. で始まるファイルは既定では出ません。 -a を付けると出ます。

$ tree -a
.
├── .env
├── .gitignore
├── docs
   └── guide.md
├── node_modules
   └── left-pad
       └── index.js
├── package.json
├── README.md
└── src
    ├── components
   └── Button.js
    ├── index.js
    └── utils.js

5 directories, 9 files

実務での使いどころ

tree は、初めて開くプロジェクトの全体像をつかむときに打つコマンドです。

場面打ち方
初めてのリポジトリを眺めるtree -L 2
構成だけを確かめるtree -d
設定ファイルの置き場所を探すtree -a -L 1
一部のディレクトリだけ見るtree src
README に貼る図を作るtree -L 2 > structure.txt

つまずきやすいところ

-L には数字が要ります。

$ tree -L 0
tree: Invalid level, must be greater than 0.

1 以上を渡してください。

ディレクトリしか渡せません。

$ tree nope
tree: nope: No such file or directory

最初から入っていないことがあります。 lscd と違い、tree は別途インストールが要る環境が多いコマンドです。 サーバーで見つからないときは ls -R で代用できます。 線は描かれませんが、下の階層まで一覧にはできます。

手を動かして覚える

webterm.appこのサイト

learn.webterm.app別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

ls / find / du / cd

よくある質問

tree と ls -R の違いは何ですか?
見せている中身は同じで、tree のほうが枝分かれの線で階層を描くので、どれがどこに入っているかを目で追えます。深さを `-L` で切れるのも tree だけです。
node_modules で画面が埋まってしまいます。
`tree -L 2` のように深さを制限してください。構成だけを見たいなら `tree -d` でディレクトリだけにするのも手です。
隠しファイルも見るにはどうしますか?
`tree -a` です。`.env` や `.gitignore` のような、名前がドットで始まるファイルも出ます。
tree が見つからないと言われます。
多くの Linux では最初から入っていないコマンドです。Ubuntu や Debian なら `sudo apt install tree` で入ります。このページのターミナルでは最初から使えます。
結果を README に貼りたいときはどうしますか?
`tree -L 2 > structure.txt` のようにファイルへ書き出して、その中身を貼ります。深さを切っておくと読みやすい図になります。