ディレクトリ構造を一発で可視化するtreeコマンドを使ってみた。

会社の後輩のブログを見ていたら、面白そうなツールの紹介をしていたので試してみました。
tree コマンドをHomebrewでDLして使ってみた

treeコマンドとは?

treeコマンドは、ディレクトリ構造を可視化するコマンドです。
スクリーンショット 2014-04-07 23.19.07
The Tree Command for Linux Homepage
lsコマンドは、カレントディレクトリのファイルのみを表示しますが、treeコマンドは、カレントディレクトリ以下の階層を探索しながら表示してくれます。
試しに「設定ファイル分割や、コマンド補完が使える拡張sshコマンドを公開しました。」で紹介したsshxのソースコードでtreeコマンドを実行してみます。

$ tree
.
├── LICENSE
├── README.md
├── bin
│   └── sshx
├── lib
│   ├── sshx
│   │   ├── cli.rb
│   │   └── version.rb
│   └── sshx.rb
├── sshx-0.0.0.gem
├── sshx-0.1.0.gem
├── sshx-0.1.1.gem
├── sshx-0.2.0.gem
└── sshx.gemspec
3 directories, 11 files

プロジェクトのファイル構造などを理解するのに、これは役立ちます!

Homebrewからインストール

treeコマンドは、Homebrewからインストールできます。

brew install tree

これで完了です。

$ tree --version
tree v1.6.0 (c) 1996 - 2011 by Steve Baker, Thomas Moore, Francesc Rocher, Kyosuke Tokoro

今まで知りませんでしたが、結構歴史があるんですね・・・。

オプションを使いこなす!

treeコマンドはディレクトリ構造を再帰的に読むので、ファイル数が多い場合は出力が巨大になってしまいます。
実際に使おうと思うと、オプションを使いこなして、いらない部分を出力しないようにした方がよい場合が多いです。
そこで、簡単に覚えられそうで、便利そうなtreeコマンドのオプションをいくつか紹介しておきます。

指定階層までを表示する。

まず、-Lオプションで、表示する階層の深さを指定することができます。

$ tree -L 1
.
├── LICENSE
├── README.md
├── bin
├── lib
├── sshx-0.0.0.gem
├── sshx-0.1.0.gem
├── sshx-0.1.1.gem
├── sshx-0.2.0.gem
└── sshx.gemspec
2 directories, 7 files

1階層だとlsコマンドとほぼ同じですが、2階層下までとか使い分けられます。

ファイル名で絞り込んで表示する。

-Pオプションで、ファイル名による絞り込みができます。

$ tree -P '*.rb'
.
├── bin
└── lib
    ├── sshx
    │   ├── cli.rb
    │   └── version.rb
    └── sshx.rb
3 directories, 3 files

「Rubyのソースコード以外はいらない」というような状況は多いので、これは便利です。

ディレクトリのみを表示する。

-dオプションを使うと、ディレクトリのみを表示できます。

$ tree -d
.
├── bin
└── lib
    └── sshx
3 directories

実際のファイルには興味がなくて、プロジェクトのディレクトリ構造だけが知りたい時に使えます。
treeコマンドは毎日使うという感じではないですが、ときどきディレクトリ構造を一気に見たくなるときがあるので、そんな時に使えそうです。

タイトルとURLをコピーしました