このページでは、Mac で Finder から「現在フォルダをターミナルで開く」方法について解説していきます。
下記ページでも紹介していますが、ターミナルではコマンドを実行して Mac を操作することができ、慣れてくるとマウスでの操作よりも便利なことも多いです。
Macでのターミナルアプリの使い方 Macのターミナルでよく使うコマンド集(初心者向け)ただちょっと不便なのは、ターミナル起動時の作業フォルダ(カレントディレクトリ)が固定になってしまっているという点です。
そのため、Finder で見つけたファイルをターミナルから操作したいような場合、下記のような作業が必要になり手間が多くて面倒です。
- ターミナルを開く
- 開いている Finder のフォルダのパスを調べる
- そのパスまで
cd
コマンドで移動する
特に後半で説明する Automator で専用アプリを作成する の方法を利用すれば、下記の手順のみで上記の一連の操作を実現することが可能になります。
- アプリのアイコンをクリックする
このページは、こういった便利な機能を利用したい方にはもちろんのこと、Mac の Automator による自動化の実例を知りたい方にも参考になると思います!
Contents
既存の右クリックメニューでは若干手間がかかる
おそらく、Mac の既存の機能では、Finder から “現在フォルダ” をターミナルで開くような機能は存在しません。
ただし、Finder から “選択したフォルダ” をターミナルで開く機能はあります。
具体的には、フォルダを右クリックして表示されるメニューから「フォルダに新規ターミナル」を選択すれば、右クリックで選択したフォルダを作業フォルダとしてターミナルを開くことができます。
ただ、この方法によってターミナルで開けるのは、あくまでも “選択したフォルダ” であって “現在フォルダ” ではありません。
ですので、ターミナルで作業フォルダとして開きたいフォルダを Finder で開いている場合、一度上の階層のフォルダに戻ってから、上記のようにフォルダを右クリックして「フォルダに新規ターミナル」を選択する必要があり、若干手間がかかります。
ちなみに、フォルダを右クリックしてもメニューに「フォルダに新規ターミナル」が表示されない場合、下記の手順によって「フォルダに新規ターミナル」を表示することができるようになります。
- 画面左上の Apple マークをクリック
- 表示されるメニューから「システム環境設定…」を選択
- 「キーボード」アイコンをクリック
- 「ショートカット」タブをクリック
- 左側のリストから「サービス」を選択
- 右側のリストから「ファイルとフォルダ」欄を見つけ出す
- ファイルとフォルダ欄にある「フォルダに新規ターミナル」にチェックを付加
Automator で専用アプリを作成する
前述の通り、Mac の既存の機能では Finder から “現在フォルダ” をターミナルで開くようなものが存在しません。
そのため、今回は Automator で「Finder から “現在フォルダ” をターミナルで開く」専用のアプリを作成し、それを Finder のツールバーに追加することで、やりたいことを実現することにしました。
これにより、下のアニメのように、Finder のツールバー上のアプリをクリックするだけで、Finder から現在フォルダをターミナルで開くことができるようになります。
ここからは、このアプリを Automator で作成し、それを Finder のツールバーに追加するための手順を解説していきたいと思います。
スポンサーリンク
Automator を開く
まずは、Automator を開きます。
Automator は「アプリケーション」フォルダの直下にあります。
ダブルクリックでアプリを開けば、下の図ような画面が表示されますので、「アプリケーション」を選択してから、「選択」ボタンをクリックします。
そうすると、下の図のような画面に遷移しますので、次は一番左側の欄の「ライブラリ」をクリックし、さらに真ん中の欄の「AppleScriptを実行」をダブルクリック or 「AppleScriptを実行」を右側の欄にドラッグします。
これにより、下の図のように AppleScript 編集画面が表示されます。ここに、作成したいアプリで実行したい処理を記述していくことになります。
Automator で AppleScript を記述してアプリを作成
次は、AppleScript を記述して「Finder から “現在フォルダ” をターミナルで開く」アプリを作成していきます。
AppleScript の記述
初期段階では、AppleScript には下記が記述されています。
on run {input, parameters}
(* Your script goes here *)
return input
end run
「Finder から現在フォルダをターミナルで開く」アプリを作成するためには、この AppleScript を下記のように変更してやれば良いです。
on run {input, parameters}
tell application "Finder"
set hfsCurrentFolder to insertion location as Unicode text
set currentFolder to get POSIX path of hfsCurrentFolder
end tell
set command to "cd " & currentFolder
tell application "Terminal"
do script command
activate
end tell
end run
記述した AppleScript の解説
正直私は AppleScript に詳しくないので分かる範囲でしか解説できないのですが、簡単に上記のスクリプトについて解説しておきます。
スクリプトで行っていることを簡単に言えば、下記の3つになります。
- Finder から現在フォルダのパスを取得する
- ターミナルを開いて
cd
コマンドを実行- 1. で取得したパスに移動する
- ターミナルをアクティベートする
まず、下記のような tell application
は、引数で指定するアプリとのやりとりを開始する処理になるようです(end tell
でやりとりを終了する)。
tell application "Finder"
set hfsCurrentFolder to insertion location as Unicode text
set currentFolder to get POSIX path of hfsCurrentFolder
end tell
上記では tell application "Finder"
を実行していますので、以降で Finder とやりとりして処理を実行することになります。
この Finder とのやりとりの中で実行しているのが、Finder で最前面に表示中のフォルダのパスの取得になります。
set hfsCurrentFolder to insertion location as Unicode text
set currentFolder to get POSIX path of hfsCurrentFolder
1行目で Finder で表示しているフォルダのパスを取得しています。
insertion location
は Finder で最前面に表示しているフォルダを指すキーワードのようで、そのフォルダのパスが1行目の処理により変数 hfsCurrentFolder
にセットされます(この最前面の Finder で表示しているフォルダを「現在フォルダ」として扱っていきます)。
ただし、ここで hfsCurrentFolder
にセットされるのは下記のような HFS パスと呼ばれる形式のもので、この形式のパスではターミナルでの cd
コマンドが実行できません。
Macintosh HD:Users:daeu:Documents:
そのため、2行目で cd
コマンドが実行可能な形式のパスである POSIX パスに変換しています。これにより、変数 currentFolder
に現在フォルダの POSIX パスが格納されることになります。
次に、下記でターミナルで実行するコマンド command
を作成しています。これは、"cd "
に currentFolder
(現在フォルダの POSIX パス)を結合しているだけで、要は、ターミナルの作業フォルダを Finder の現在フォルダに移動するコマンドとなります。
set command to "cd " & currentFolder
続いて "Terminal"
とのやりとりを開始し、さらに下記の2行目でターミナルに先ほど作成した command
を実行させています。
tell application "Terminal"
do script command
これにより、ターミナルが起動して command
が実行されます。
command
には “ターミナルの作業フォルダを Finder の現在フォルダに移動するコマンド” が格納されていますので、これにより Finder から現在フォルダをターミナルに開く処理が実行されることになります。
最後に、下記によりターミナルの activate
を行なっています。これによりターミナルのウィンドウが最前面に移動します。
activate
ちなみに、上記の AppleScript の場合、cd
コマンドが実行される様子がターミナル上に残ってしまいます。これを残したくない場合は、command
作成部分の行を下記のように変更してください。
set command to "cd " & currentFolder & " ; " & "clear"
これにより、cd
コマンド実行後に clear
コマンドが実行され、画面がクリアされるようになります。
AppleScript の動作確認
続いて、先ほど編集した AppleScript の動作確認を行います。
Finder でフォルダを開く
まずは Finder で適当なフォルダを開きます。
基本的にはどのフォルダでも良いのですが、「最近の項目」など一部の場所は上記の AppleScript で上手くパスが取得できないようなので、「書類(Documents)」フォルダあたりが無難だと思います。
AppleScript を実行する
フォルダを開いたら Automator の画面に戻り、AppleScript 編集画面の上側にある再生ボタンをクリックして AppleScript の実行を行います。
再生ボタンを押して、ターミナルが起動し、さらに cd
コマンドにより事前に開いておいたフォルダへの移動が行われていれば動作確認は成功です(今どこのフォルダにいるかは pwd
コマンドで確認できます)。
もし下の図のようなメッセージが表示された場合、おそらく前述の AppleScript でパスが取得できないフォルダを Finder で開いているものと思われますので、別のフォルダを開いて再度試してみていただければと思います。
以上で AppleScript の編集は完了になります。
スポンサーリンク
作成したアプリを保存する
次は、作成したアプリを保存していきます。
メニューバーの「ファイル」から「保存」を選択すれば、下の図のような画面が表示されます。
「名前」に作成したアプリの名前を付け(分かりやすければ何でも良いはず)、「場所」で作成したアプリを保存したいフォルダを選択して保存ボタンをクリックすれば、その選択したフォルダにアプリが保存されます。
保存されたアプリのアイコンをダブルクリックすればアプリが実行され、AppleScript の動作確認時同様に、現在のフォルダがターミナルで開かれることを確認できると思います。
ただ、最初のアプリ起動時には下の図のような画面が表示される場合がありますので、表示された場合は「OK」を選択してください(私は2回表示されました)。
あと、ターミナルを全く起動していない状態でアプリを実行すると、ターミナルのウィンドウが2つ起動することがあるようでした。これに関しては “修正の仕方がわからない” & “ターミナルを起動しておけば1つしか起動しないのでそんなに実害がない” ため、修正は見送らせていただくことにしています。
また、もし AppleScript の動作確認はうまく行っていたのにも関わらず、アプリのアイコンをダブルクリックしてエラーが出る場合は、再度ここまでの手順を繰り返して新たにアプリを作成し直すことで解決できる可能性があります。
私が最初にアプリの実行を試した際には下の図のようなエラーが発生し、アプリが全く動作してくれませんでした。
で、また新たにアプリを新規作成した際には、このエラーが出なくなりました。おそらくアプリを作成する際の手順がおかしかったのではないかと思うのですが、同様のエラーが出る方もおられるかもしれませんので、参考にしていただければと思います。
以上で Automator での作業は完了ですので、Automator アプリは終了してしまって構いません。
アプリを Finder のツールバーに追加
ここまでの作業により、現在のフォルダをターミナルで表示するアプリが作成できましたので、次は Finder のツールバーにこのアプリを追加します。
これにより、アプリの保存先に関わらず、Finder で表示しているフォルダをツールバーからターミナルで開けるようになります。
アプリのツールバーへの追加は、追加したいアプリを command
ボタンを押しながらツールバーにドラッグ&ドロップすることで実現することができます。
アプリをツールバーに追加すると、ツールバーにそのアプリが常駐することになります。
ツールバーに追加したアプリは Finder で表示しているフォルダの場所に関わらず表示されていますので、これによりどのフォルダからもアプリが実行可能になったことになります。
試しに他のフォルダに移動し、ツールバーに追加したアプリのアイコンをクリックすれば、その移動後のフォルダがターミナルで開かれることを確認することができると思います。
ただし、前述の通り「最近の項目」などの一部の場所は上手く開けないので注意してください。
ツールバーからアプリを削除したい場合は、ツールバー上の削除したいアプリを command
ボタンを押しながら “ツールバー以外の場所” にドラッグ&ドロップしてください
これにより、ドラッグ&ドロップしたアプリがツールバーから削除されます
アプリのアイコンを変更
ここまでの作業でアプリの機能面は完成したことになります。
最後にアプリのアイコンを変更する方法について解説しますので、お好みでアイコンの変更も実施していただければと思います。
アプリのアイコンを変更する手順は下記の通りになります。
まず、作成したアプリのアイコンを右クリックし、メニューから「情報を見る」を選択します。これにより下の図のようなウィンドウが表示されると思います(一般情報等は隠させていただいています)。
アイコンの変更は、このウィンドウの一番上のアイコン部分に、他のアプリのアイコンをドラッグ&ドロップすることで実現することができます。
例えば、アプリのアイコンをターミナルアプリと同じものにしたいのであれば、「アプリケーション → ユーティリティ」にある「ターミナル」のアイコンをドラッグ&ドロップすれば良いことになります。
これを行えば、アプリ本体のアイコンが変更されると同時に、ツールバーに表示されているアプリのアイコンも変更されることになります。
もちろんターミナルだけでなく、他のアイコンにも変更可能ですので、お好みに合わせてアイコンの変更を行なっていただければと思います。
スポンサーリンク
参考:ターミナルの作業フォルダを Finder で開く
参考情報ですが、ターミナルから作業フォルダ(カレントディレクトリ)を Finder で開くには、下記の open
コマンドを実行します。
open .
Finder でフォルダを辿っていく必要がないので非常に便利なコマンドです。Mac でターミナルを使うのであれば、必ず open
コマンドは覚えておきましょう!
その他、覚えておいた方が良いコマンドは下記ページで紹介していますので、こちらも参考にしていただければと思います。
Macのターミナルでよく使うコマンド集(初心者向け)まとめ
このページでは、Mac で Finder から「現在フォルダをターミナルで開く」方法について解説しました!
Mac の既存の機能として「選択したフォルダをターミナルで開く」ことはできるのですが、この機能では現在フォルダをターミナルで開きたい際にば若干手間がかかります。
その一方で、Automator で Finder から「現在フォルダをターミナルで開く」アプリを作成してツールバーに追加してやれば、作成したアプリをクリックするだけで簡単に「現在フォルダをターミナルで開く」を実現することができます。
正直 Automator は初めて使ったのですが、かなりいろんな作業を自動化できそうでビックリしました!
また便利そうなアプリが作成できたら紹介していきたいと思います!
非常に参考になりました!
トリックさん
コメントありがとうございます!
参考になったとのことで、私としても大変嬉しいです。
またMac関連の記事も追加していこうと思っていますので、
今後ともよろしくお願いいたします。