現在のFinderの場所からターミナルウィンドウを直接開くにはどうすればよいですか?


111

「ここにターミナルを開く」というオプションがあるように、「Finder」ウィンドウのインスタンス内で右クリックできるかどうか疑問に思っていました。本当に役立つでしょう。


5
Stack Overflowの同様の質問には多くの答えがあります。
ロブ・ケネディ

4
ただし、このサイトはより適切な質問場所である必要があります
ericn 14

回答:


134

Mac OS X Lion 10.7の時点で、TerminalはFinderで選択したフォルダで新しいターミナルウィンドウまたはタブを開くためのサービスを提供します。また、(任意のアプリケーションで)テキストで選択された絶対パス名でも機能します。これらのサービスは、[ システム環境設定]> [キーボード]> [キーボードショートカット]> [サービス]で有効にできます。「フォルダの新しいターミナル」と「フォルダの新しいターミナルタブ」を探します。ショートカットキーを割り当てることもできます。

さらに、フォルダー(およびパス名)をターミナルアプリケーションアイコンにドラッグして新しいターミナルウィンドウを開くか、ターミナルウィンドウのタブバーにドラッグしてそのウィンドウに新しいタブを作成できるようになりました。(ターミナルビューではなく)タブにドラッグすると、cd追加の入力なしで完全なコマンドが実行され、そのディレクトリに切り替わります。

OS X Mountain Lion 10.8の時点で、ターミナルへのCommand-Dragggingも完全なcdコマンドを実行します。

注:Finderでフォルダーを選択すると、フォルダーサービスの新しいターミナルがアクティブになります。単にフォルダを開いて、「インプレース」でサービスを実行することはできません。親フォルダーに戻り、関連するフォルダーを選択して、[サービス]メニューまたはコンテキストメニューからサービスをアクティブにします。


2
「さらに、フォルダー(およびパス名)をターミナルアプリケーションアイコンにドラッグして、新しいターミナルウィンドウを開くことができます」-冗談でしょうか?それは素晴らしいです!:)
フィル

3
Mavericks 10.9.4では、ショートカットは機能しません。ドラッグ&ドロップの先端:)をありがとう
アマール

1
@amarあなたがしたことを私たちと共有してもらえますか?私にとっても10.10で壊れた
OJFord 14年

2
@Olive -私はもはや:(私のために働いたショートカットYesomiteにアップグレードした後
アマール

4
私が気づいたことの1つは、これがEl Capitanの場合、Finderでフォルダーを選択する必要があることです(ファインダー内に表示されるフォルダーをシングルクリックします)。これが機能することを期待した方法は、現在のフォルダーでターミナルウィンドウを開くことです。実際、ウィンドウ内でフォルダーを選択する必要があります。
sillygwailo

19

トラブルの解決策はGo2Shellと呼ばれ、まさにあなたが説明していることをします。App Storeで見つけることができますが、何よりも完全に無料です。

Go2Shell


Go2Shellの代わりにiTermを使用する場合は、この回答を参照して設定を表示してください。または、簡単に言えば、入力open -a Go2Shell --args configして構成を表示します。
ジェロミーアングリム

今でOKのようです@jherran
コラス

1
最新バージョンはアプリストアからはインストールできませんが、ウェブサイトzipzapmac.com/Go2Shellから、またはからインストールできbrew cask install go2shellます。
fiedl

apple / itunesアプリストアから最新バージョンv1.2.2をインストールすることができ、完全に正常に動作しました
computingfreak

14

別のアプローチ:DTermを使用すると、ウィンドウの上部にフローティングコマンドプロンプトが表示されます。これは、Finderだけでなく、多くのアプリで機能します。


13

cdtoは、まさに必要なもののようです。これは、Finderのツールバーに配置するように設計されたミニアプリケーションです。実行すると、ターミナルウィンドウが開き、cdFinderの現在のディレクトリに移動します。


10

iTermを使用している場合、iTermバージョン3でAppleScript構文が変更されています。これは、Finderでショートカットを作成するための完全な手順です。

  1. Automatorを起動します。

  2. 「アプリケーション」を選択します。

説明書のイラスト

  1. 「Applescriptを実行」を選択します。

ここに画像の説明を入力してください

  1. 以下のコードを貼り付けます:

    -- get the current directory in Finder
    on run {input, parameters}
        tell application "Finder"
            set _cwd to quoted form of (POSIX path of (folder of the front window as alias))
        end tell
        CD_to(_cwd)
    end run
    
    -- change directory in iTerm (version >= 3)
    on CD_to(_cwd)
        tell application "iTerm"
            activate
    
            try
                set _window to first window
            on error
                set _window to (create window with profile "Default")
            end try
    
            tell _window
                tell current session
                    write text "cd " & _cwd & ";clear;"
                end tell
            end tell
        end tell
    end CD_to

ここに画像の説明を入力してください

  1. 「ファイル」->「エクスポート」をクリックして.app、としてエクスポートし、保存し/Applicationsます。

  2. を押しながら、アプリケーションをFinderアイコンバーに移動します

ここに画像の説明を入力してください

できた!

こちらの手順に従って、Finderのアイコンを変更できます(Automatorで作成したアプリケーションのアイコンを変更します)。


9

私は主にこの関数を使用します:

cf() {
  cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}

次のようなスクリプトにショートカットを割り当てることもできます。

既存のタブを再利用するか、新しいウィンドウ(ターミナル)を作成します。

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if (exists window 1) and not busy of window 1 then
        do script "cd " & quoted form of p in window 1
    else
        do script "cd " & quoted form of p
    end if
    activate
end tell

既存のタブを再利用するか、新しいタブ(ターミナル)を作成します。

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    if busy of window 1 then
        tell application "System Events" to keystroke "t" using command down
    end if
    do script "cd " & quoted form of p in window 1
end tell

常に新しいタブを作成します(iTerm 2):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "iTerm"
    if exists current terminal then
        current terminal
    else
        make new terminal
    end if
    tell (launch session "Default") of result to write text "cd " & quoted form of p
    activate
end tell

最初の2つのスクリプトには、10.7で追加されたサービスと比較していくつかの利点があります。

  • 10.9の時点で、入力としてフォルダーを受け取るサービスが列ビューのサービスメニューに表示されないというバグがあります。フォルダサービスの[新しいターミナル]タブにキーボードショートカットを割り当てた場合、列表示では機能しません。
  • 最初にフォルダを選択する代わりに、タイトルバーのフォルダを使用します。
  • コマンドの実行、manページの表示、emacsの実行など、ビジーでない場合、最前面のタブを再利用します。

10.7または10.8を使用する場合、次のように変更tell application "Finder" to set p to POSIX path of (insertion location as alias)します。

tell application "Finder"
    if exists Finder window 1 then
        set p to POSIX path of (target of Finder window 1 as alias)
    else
        set p to POSIX path of (path to desktop)
    end if
end tell

10.7および10.8にはバグがありますが(10.9または10.6ではない)、最後にフォーカスが別のアプリケーションに移動されてからinsertion locationプロパティを取得したときに作成されたウィンドウがFinderで無視されます。



3

ファインダーからターミナルウィンドウに任意のファイルまたはフォルダーをドラッグして、そのファイルまたはフォルダーの絶対パスの文字列を挿入できます。

これは、任意の標準インストールで動作します(10.4 Tigerになるまで、少なくともバック[ 多分、以前の¿? ])好みの私たちいじる追加のソフトウェアを必要とせず、彼/彼女のことを起こる場合は、後で自分の非テッキー友達に陥るかもしれいずれかが作業中のMac。このトリックは、ターミナルで実行されているすべてのプロセス、たとえばemacsやviでも機能します(viが適切なモードであるか、viを使用している人がそうであると仮定します)。







-1

 

    OpenTerminal


1
デッドリンク:(。これが、リンクのみの回答の寿命が短い理由、または生き続けるために定期的に確認する必要がある理由です。
dan

@daniel archive.orgリンクで置換
grg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.