はじめに
私はよくWeb開発をします。Web開発ではディレクトリ構造が以下のような感じになることが多いと思います。
app
├── api
└── client
アプリを起動するには、まずapp
ディレクトリまで移動してから、それぞれのディレクトリ内で以下のコマンドを実行する必要があります。
-
app/api
docker compose build docker compose up
-
app/client
pnpm dev
つまり、アプリを起動するための行動をまとめると
appディレクトリに移動する
cd ~/app
↓
apiディレクトリに移動する
cd api
↓
dockerを起動する
docker compose build
docker compose up
↓
新規タブを開く
- マウスを動かして新規タブを開く
↓
clientディレクトリを開く
cd ../client
↓
Nextを開く
pnpm dev
このように、6手順もありコマンド操作をしているのに、新しいタブを開くためにマウスを使わないといけないことに大変不便さを感じていました。
コマンドだけで簡素に完結させたい!! ということで
コマンドライン上で新しいタブを開きつつ、指定したディレクトリに移動する方法を紹介します。
解決策:open -a
コマンドの活用
Macでは、open
コマンドを使ってアプリケーションを開くことができます。以下ようなコマンドで、指定したアプリケーションで指定したディレクトリを開くことができます。
open -a <アプリケーション名> <パス>
例えば、私が使用しているターミナルアプリケーションがWarpの場合、以下のコマンドで新しいタブを開きつつ、client
ディレクトリに移動できます。
open -a Warp client
このコマンドを使うことで、ターミナルからマウスを使わずに新しいタブを開いてディレクトリを移動することができます。
ターミナルアプリケーション別の使用方法
Warpの場合
先ほどの例の通り、Warpでも同様にopen -a
コマンドを利用できます。
open -a Warp ./client
Terminalの場合
open -a Terminal ./client
他もアプリケーションでも同様にできるはずです。
このようにすることで、先ほどの手順の
新規タブを開く
↓
clientディレクトリを開く
が一括ででき、なおかつコマンドだけで完結します!!
でも、以下のコードを打つのも邪魔くさいですよね...
そんな人のために次の章があります。
open -a <アプリケーション名> <パス>
エイリアスや関数でさらに効率化
頻繁に使用するのであれば、シェルのエイリアスや関数として登録すると便利です。
エイリアスの設定
~/.bashrc
や~/.zshrc
ファイルに以下を追加します。
alias open_client='open -a Warp ./client'
alias open_api='open -a Warp ./api'
ターミナルを再読み込みして、以下のように実行できます。
open_client
おわりに
コマンドライン上で新しいタブを開きつつ、指定したディレクトリに移動する方法をご紹介しました。これにより、マウスを使わずにターミナルの操作を完結できるようになり、開発効率が向上します。
ターミナル操作に慣れている開発者にとって、ちょっとした工夫で日々の作業が快適になります。ぜひ試してみてください。
追記
各ターミナルアプリケーションによって、対応状況や使用方法が異なる場合があります。使用しているターミナルに合わせてコマンドを調整してください。