treeとは
その名の通り、配下のファイル構造をツリー表示するコマンドです。
深い箇所にあるファイル構造を把握するのにとてもベンリ。あと、こういうブログとかSlackとかで他人にファイル構造を伝えるときなんかにも。
百聞は一見にしかずということで、こんな感じです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
$ tree . ├── Vagrantfile └── chef-repo ├── LICENSE ├── README.md ├── chefignore ├── cookbooks │ ├── README.md │ └── example │ ├── README.md │ ├── attributes │ │ └── default.rb │ ├── metadata.rb │ └── recipes │ └── default.rb ├── data_bags │ ├── README.md │ └── example │ └── example_item.json ├── environments │ ├── README.md │ └── example.json └── roles ├── README.md └── example.json |
ちなみに単にtreeだけだと日本語含むファイル名とかだと文字化けしちゃいます。そういうときは -N オプションを付けることで、ASCII以外もそのまま表示してくれます。
ただこのコマンドは元から入ってる環境は少ないと思うので、自分でインストールしないとダメです。特に悪影響あるものでもないので、自分が管理権限を持っていなくてもお願いすれば入れてもらえると思いますよ。
インストール手順(Mac)
Homebrewで入れるのが手っ取り早いです。コマンド一つで簡単。
|
1 |
brew install tree |
Homebrew自体のインストールの仕方はmac homebrewとかでググってください。入れておいて損はないですよ。
インストール手順(RedHat系)
所謂yumが使える環境の話。CentOSやAmazonLinuxなんかはこれです。これも単純にyumでOK。
|
1 |
yum install -y tree |
便利なオプション
- -N: 上でも少し取り上げましたが、非ASCII文字を正しく表示してくれます
- -L <数字>: 辿る階層の深さを制限できます
- -C: ディレクトリに色を付けてくれます
- -X: XML形式で出力します
- -J: JSON形式で出力します
- -o <ファイル名>: 標準出力の代わりにファイルに書き出します
これだけで色々と遊べそうじゃないですか?
ちなみにtreeが使えない環境でもsedとか駆使してツリー上に配下ファイルを網羅することもできなくはない…です。でも無駄でしかないのでtree入れちゃいましょうね 🙂


