素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【めちゃくそ便利】treeコマンドでディレクトリ構造を出力しよう!【オプション多数】

投稿日:

スポンサーリンク

336×280




ディレクトリ構造の表現方法

ディレクトリ構造をうまく表現したい

主にインフラ構築やWebシステムを開発していると、他の開発者にディレクトリ構造を共有したいという場合があると思います。

その場合、自分でFinderやエクスプローラーを開きながら手打ちでディレクトリ構造をテキストエディターで作ると、ディレクトリ構造が複雑な場合に確実に死亡しますし、タイポコピペミスで間違ったディレクトリ構造になってしまい、結果として正しくない情報を共有してしまう恐れがあります。

また、自前でディレクトリ構造を表現する場合、以下のような文字記号を利用して表現すると思いますが、半角や全角がまじるとうまくインデントが表現されずに見にくくなってしまうことも多々あります。

試しに以下のようなディレクトリを自前で上記の罫線で表現してみましょう。

すごくめんどくさいです。。。

treeコマンド

そんな苦難から助けてくれるのがtreeコマンドです!

このコマンドを使えば、一発でディレクトリをテキスト表示してくれるので、正確な情報を抽出する事が可能になります。

筆者はプログラミング関連の記事を多く執筆しているので、多用しています!!

Macであれば、Homebrewから簡単にインストールする事が可能です。

手順

インストール

まずはtree本体をHomebrewでインストールしましょう。
以下のコマンドを実行してください。

以下のような実行ログが表示されればインストール完了です。

使い方

まずはシンプルなディレクトリ構造を出力してみましょう。

出力したいディレクトリにて、以下のコマンドを実行してみてください。

以下のような表示になり、再起的にディレクトリ情報が表示されます。

しかし、日本語が文字化けしちゃってますね。。。

オプション

スポンサーリンク

336×280




日本語文字化け対応

-Nをつけて実効することで日本語が含まれていても文字化けすることなく表示することが可能になります。

空ディレクトリ非表示

–pruneをつけることで、ファイルが一つも存在しないディレクトリの出力を対象外にすることが可能になります。

出力階層指定

-L {表示したい階層数}をつけることで、特定の階層までの出力に制御することが可能になります。

相対パス表示

-f {パターン}をつけることで、実行ディレクトリからの相対パスでの出力をすることが可能になります。

パターン指定

-P {パターン}をつけることで、パターンにマッチする情報のみ出力することが可能になります。
正規表現での指定も可能です。
※パターンにマッチするファイルがなくてもディレクトリは表示されてしまいます
なので、–pruneオプションと組み合わせて使いましょう。

除外

-I {場外対象}をつけることで、特定のディレクトリやファイルを除外して出力することが可能になります。
もちろん、正規表現での指定も可能です。

複数除外

複数のファイルやディレクトリを場外したい場合、以下のように実行すると期待通りの出力になりません。

原因としては、-Iオプションは複数指定する場合は-Iオプションを複数つけるのではなく、以下のように除外対象を「|(パイプ)」で区切って指定する必要があります。

ディレクトリのみ出力

-dをつけることで、出力結果をディレクトリのみに絞ることが可能になります。

隠しファイル出力

-aをつけることで、隠しファイルや隠しフォルダも出力対象に含まれるようになります。
※デフォルトでは出力対象外

ファイルサイズ出力

-hをつけることで、ファイルサイズも出力対象に含まれるようになります。

オーナー情報出力

-uをつけることで、オーナー情報も出力対象に含まれるようになります。

グループ情報出力

-gをつけることで、グループ情報も出力対象に含まれるようになります。

ファイル出力

-oをつけることで、出力内容をファイルに書き出すことが可能です。

終わりに

スポンサーリンク

336×280




以上のように、手作業でやるにはリスクや手間のかかるところをコマンド一発で正確な情報を作成することが可能になります。

また、今回紹介しきれなかった便利なオプションもまだまだあります。

開発をしている方なら必ず役に立つツールだと思いますので、是非使ってみてください♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , ,

blogenist

Author: blogenist

お名前.comサイドバー