tree コマンド

treeコマンドは誰かにディレクトリ・ファイル構造を見せて説明したりする時に便利なコマンドです。

コマンドの使い方を見る前に以下で現在のワーキングディレクトリをベースに適当な構造を作ります。

mkdir -p {a,b}/c
touch {a,b}/c/d.{txt,log,js,css,html}

では構造を表示してみます。ワーキングディレクトリをベースとする場合、単にtreeと実行します。

tree
# .
# ├── a
# │   └── c
# │       ├── d.css
# │       ├── d.html
# │       ├── d.js
# │       ├── d.log
# │       └── d.txt
# └── b
#     └── c
#         ├── d.css
#         ├── d.html
#         ├── d.js
#         ├── d.log
#         └── d.txt

もしa/cをベースで表示したい場合はtree a/cとコマンドの後に起きます。

tree a/c
# a/c
# ├── d.css
# ├── d.html
# ├── d.js
# ├── d.log
# └── d.txt

treeには他にフィルターのようなオプションがいくつかあります。

フィルターオプション

-P

-P <pattern>オプションを使うと、パターンにマッチしたファイル名以外は非表示にできます。

tree -P '*.js|*.css' a/c  
# a/c
# ├── d.css
# └── d.js

-I

-I <pattern>-Pの逆で、マッチしたものが非表示になります。

tree -I '*.js|*.css' a/c
# a/c
# ├── d.html
# ├── d.log
# └── d.txt

-L

-L <number>を使うと何階層目まで表示するかを確認します。

tree -L 1
# .
# ├── a
# └── b

-L 1で1階層目だけなのでabが表示されます。