開発をしていると、プロジェクト内のディレクトリ構造を確認したい場面があります。その際に便利なのが、LinuxやMacで利用できるtree
コマンドです。しかし、JavaScriptやTypeScriptプロジェクトでは、node_modules
フォルダが巨大で見づらくなるため、これを除外してディレクトリ構造を確認したいことがあります。
treeコマンドの基本
tree
コマンドは、ディレクトリ構造をツリー形式で表示するツールです。以下のようにインストールできます。
インストール方法
Macの場合
brew install tree
Ubuntuの場合
sudo apt install tree
基本的な使い方
以下のコマンドで、現在のディレクトリ構造を表示できます。
tree
しかし、node_modules
が含まれると、大量の出力になり、肝心のプロジェクト構造が見えにくくなります。そのため、node_modules
を除外する方法が必要です。
node_modulesを除外する方法
方法1: -Iオプションを使う
tree
コマンドには、特定のパターンを除外できる-I
(大文字のi)オプションがあります。このオプションを使うと、node_modules
フォルダを除外できます。
コマンド例
tree -I 'node_modules'
出力例
.
├── package.json
├── src
│ ├── index.js
│ └── utils.js
└── README.md
2 directories, 4 files
このコマンドでは、node_modules
ディレクトリが除外され、シンプルな出力になります。
方法2: grepでフィルタリング
tree
コマンドとgrep
を組み合わせて、node_modules
を含む行を除外する方法もあります。
コマンド例
tree | grep -v 'node_modules'
この方法は柔軟ですが、-I
オプションに比べてやや手間がかかります。
方法3: エイリアスを設定
毎回オプションを指定するのが面倒な場合は、エイリアスを設定すると便利です。以下のように、~/.zshrc
や~/.bashrc
ファイルにエイリアスを追加できます。
エイリアス例
alias tree="tree -I 'node_modules'"
設定後にターミナルを再起動するか、以下のコマンドで設定を反映させます。
source ~/.zshrc
これにより、単純にtree
と入力するだけでnode_modules
が除外されるようになります。
方法4: .gitignoreを活用
tree
コマンドには、.gitignore
を参考にしながらファイルやディレクトリを除外するオプションはありませんが、.gitignore
の内容を利用して動的にtree
コマンドを実行するスクリプトを作成することもできます。
スクリプト例
#!/bin/bash
IGNORE=$(grep -v '^#' .gitignore | tr '\n' '|')
IGNORE=${IGNORE%|}
tree -I "$IGNORE"
このスクリプトを実行すると、.gitignore
のルールを反映して出力をカスタマイズできます。
その他の便利なオプション
ディレクトリを優先的に表示
--dirsfirst
オプションを使うと、ディレクトリがファイルよりも先に表示され、構造が把握しやすくなります。
コマンド例
tree --dirsfirst -I 'node_modules'
ディレクトリの深さを制限
大規模なディレクトリでは、-L
オプションを併用して深さを制限することで、見やすい出力を得られます。
コマンド例
tree -L 2 -I 'node_modules'
まとめ
tree
コマンドを使えば、ディレクトリ構造を簡単に確認できますが、node_modules
のような不要なフォルダを除外することで、より見やすい出力を得られます。この記事で紹介した方法やオプションを活用し、快適な開発環境を整えましょう。