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階層目だけなのでa
とb
が表示されます。