Wie kann ich ein Terminalfenster direkt von meinem aktuellen Finder-Standort aus öffnen?

109

Ich habe mich gefragt, ob ich mit der rechten Maustaste in eine Instanz eines "Finder" -Fensters klicken kann, sodass ich die Option "Open Terminal Here" (Terminal hier öffnen) habe. Es wäre sehr hilfreich.

Haarboot
quelle
5
Es gibt viele Antworten auf eine ähnliche Frage zu Stack Overflow .
Rob Kennedy
4
Diese Seite sollte ein passenderer Ort sein, um danach zu fragen
ericn

Antworten:

133

Ab Mac OS X Lion 10.7 bietet Terminal Dienste zum Öffnen eines neuen Terminalfensters oder einer neuen Registerkarte im ausgewählten Ordner im Finder. Sie funktionieren auch mit absoluten Pfadnamen, die im Text ausgewählt sind (in jeder Anwendung). Sie können diese Dienste über Systemeinstellungen> Tastatur> Tastenkombinationen> Dienste aktivieren . Suchen Sie nach "New Terminal at Folder" und "New Terminal Tab at Folder". Sie können ihnen auch Tastenkombinationen zuweisen.

Außerdem können Sie jetzt Ordner (und Pfadnamen) auf das Terminalanwendungssymbol ziehen, um ein neues Terminalfenster zu öffnen, oder auf eine Registerkartenleiste in einem Terminalfenster, um in diesem Fenster eine neue Registerkarte zu erstellen. Wenn Sie auf eine Registerkarte ziehen (und nicht in die Terminalansicht), wird ein vollständiger cdBefehl ausgeführt, um ohne zusätzliche Eingabe in dieses Verzeichnis zu wechseln.

Ab OS X Mountain Lion 10.8 wird beim Ziehen von Befehlen in ein Terminal auch ein vollständiger cdBefehl ausgeführt.

Hinweis: Der Dienst "Neues Terminal bei Ordner" wird aktiviert, wenn Sie einen Ordner im Finder auswählen . Sie können den Ordner nicht einfach öffnen und den Dienst "an Ort und Stelle" ausführen. Kehren Sie zum übergeordneten Ordner zurück, wählen Sie den entsprechenden Ordner aus und aktivieren Sie den Dienst über das Menü Dienste oder das Kontextmenü.

Chris Page
quelle
2
"Außerdem können Sie jetzt Ordner (und Pfadnamen) auf das Terminalanwendungssymbol ziehen, um ein neues Terminalfenster zu öffnen." Das ist super! :)
Phil
3
In Mavericks 10.9.4 funktionieren Verknüpfungen für mich nicht. Vielen Dank für Drag & Drop-Tipp :)
amar
1
@amar Können Sie uns mitteilen, was Sie getan haben? Auch für mich in 10.10 gebrochen
OJFord
2
@Olive - Nach dem Upgrade auf Yesomite funktionierten die Verknüpfungen nicht mehr für mich :(
amar
4
Eine Sache, die mir aufgefallen ist, und die mit El Capitan zusammenhängt, ist, dass Sie den Ordner im Finder auswählen müssen (klicken Sie einmal auf den Ordner, den Sie im Finder sehen). Ich habe erwartet, dass dies funktioniert, indem ein Terminalfenster im aktuellen Ordner geöffnet wird. Tatsächlich müssen Sie den Ordner innerhalb des Fensters auswählen.
Sillygwailo
19

Die Lösung für Ihre Probleme heißt Go2Shell und macht genau das, was Sie beschreiben. Sie finden es im App Store und das Beste ist, dass es völlig kostenlos ist.

Go2Shell

z4mba
quelle
Wenn Sie iTerm stattdessen mit Go2Shell verwenden möchten, lesen Sie diese Antwort, um die Einstellungen aufzurufen . Kurz gesagt, geben Sie ein open -a Go2Shell --args config, um die Konfiguration aufzurufen.
Jeromy Anglim
@ jherran es scheint jetzt in Ordnung zu sein
Colas
1
Die neueste Version kann nicht über den App Store, sondern über die Website zipzapmac.com/Go2Shell oder von installiert werden brew cask install go2shell.
Fiedl
ich konnte die neueste version v1.2.2 aus dem apple / itunes app store installieren, die einwandfrei funktioniert
computingfreak
14

Ein anderer Ansatz: DTerm , mit dem Sie eine schwebende Eingabeaufforderung am oberen Rand des Fensters erhalten. Dies funktioniert in vielen Apps, nicht nur in Finder.

jtbandes
quelle
13

cdto scheint genau das zu sein, was Sie brauchen. Es handelt sich um eine Mini-Anwendung, die in die Symbolleiste des Finders eingefügt werden soll. Wenn Sie sie ausführen, wird ein Terminalfenster und cddas aktuelle Verzeichnis im Finder geöffnet .

Mark Szymanski
quelle
9

Ich benutze meistens diese Funktion:

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

Sie können einem Skript auch eine Verknüpfung wie die folgenden zuweisen.

Eine vorhandene Registerkarte wiederverwenden oder ein neues Fenster erstellen (Terminal):

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

Eine vorhandene Registerkarte wiederverwenden oder eine neue Registerkarte erstellen (Terminal):

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

Erstellen Sie immer eine neue Registerkarte (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

Die ersten beiden Skripte haben einige Vorteile gegenüber den in 10.7 hinzugefügten Diensten:

  • Ab 10.9 gibt es einen Fehler, bei dem Dienste, die Ordner als Eingabe erhalten, niemals im Menü Dienste in der Spaltenansicht aufgelistet werden. Wenn Sie der Registerkarte "Neues Terminal" im Ordnerdienst eine Tastenkombination zuweisen, funktioniert dies in der Spaltenansicht nicht.
  • Sie verwenden den Ordner in der Titelleiste, anstatt zunächst einen Ordner auswählen zu müssen.
  • Sie verwenden die vorderste Registerkarte erneut, wenn sie nicht belegt ist, z. B. wenn Sie einen Befehl ausführen, eine Manpage anzeigen oder Emacs ausführen.

Wenn Sie 10.7 oder 10.8 verwenden, wechseln Sie tell application "Finder" to set p to POSIX path of (insertion location as alias)zu:

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

Es gibt einen Fehler in 10.7 und 10.8 (nicht jedoch in 10.9 oder 10.6), bei dem Finder Fenster ignoriert, die erstellt wurden, nachdem der Fokus zum letzten Mal zu einer anderen Anwendung und zurück verschoben wurde, wenn die insertion locationEigenschaft abgerufen wurde .

Lri
quelle
9

Für Benutzer von iTerm hat sich die AppleScript-Syntax in iTerm Version 3 geändert. Gehen Sie wie folgt vor, um eine Verknüpfung im Finder zu erstellen.

  1. Starten Sie Automator.

  2. Wählen Sie "Bewerbung":

Abbildung der Anweisungen

  1. Wähle "run Applescript":

Bildbeschreibung hier eingeben

  1. Fügen Sie den folgenden Code ein:

    -- 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

Bildbeschreibung hier eingeben

  1. Klicken Sie auf "Datei" -> "Exportieren", um als zu exportieren .app, speichern Sie es in /Applications.

  2. Verschieben Sie die Anwendung in die Finder-Symbolleiste, während Sie Folgendes gedrückt halten :

Bildbeschreibung hier eingeben

Getan !

Sie können das Symbol im Finder ändern, indem Sie den Anweisungen hier folgen (ändern Sie das Symbol der mit Automator erstellten Anwendung).

vmarquet
quelle
3

Sie können eine beliebige Datei oder einen Ordner aus dem Finder in ein Terminalfenster ziehen, um eine Zeichenfolge des absoluten Pfads der Datei oder des Ordners einzufügen.

Dies funktioniert bei jeder Standardinstallation (mindestens bis 10.4 Tiger [ ¿vielleicht früher? ]), Ohne dass zusätzliche Software erforderlich ist, um die Einstellungen zu ändern, die Ihren nicht-technischen Freund später aus dem Konzept bringen können, wenn es sich um seinen handelt Mac, an dem Sie arbeiten. Dieser Trick funktioniert auch für alle Prozesse, die im Terminal ausgeführt werden, z. B. emacs oder vi (vorausgesetzt, Sie haben vi im entsprechenden Modus, oder Sie verwenden vi).

roosto
quelle
3

Versuchen Sie Folgendes: https://github.com/nmadhok/OpenInTerminal

Es funktioniert mit den Seitenleistenelementen des Finders, mehreren Ordner- / Dateiauswahlen und allem, was Sie sich vorstellen können. Wirklich einfach zu bedienen!

nmadhok
quelle
Es funktioniert gut mit Hochsierra!
Ivelin
2

ShellHere

http://etresoft.org/shellhere.html - Etresoft und John Daniel

… Mit der rechten Maustaste in eine beliebige Instanz eines "Finder" -Fensters klicken…

Ich weiß nicht, ob es über ein Kontextmenü erreichbar ist, aber ich behalte ShellHere in der Symbolleiste von Finder .

Graham Perrin
quelle
Der Link funktioniert nicht
Ivelin
1

Sie können die App, die ich entwickelt habe , FinderGo , die Open Source und einfach zu bedienen ist

onmyway133
quelle
-1

 

    OpenTerminal

Oh ho
quelle
1
Dead Link :(. Dies ist der Grund, warum Link nur Antworten eine kurze Lebensdauer haben oder regelmäßig überprüft werden sollten, um am Leben zu bleiben.
Dan
@ Daniel Ersetzt durch archive.org link
grg