Come posso aprire una finestra Terminale direttamente dalla mia posizione attuale del Finder?


111

Mi chiedevo se c'era qualcosa che potevo fare clic con il tasto destro all'interno di qualsiasi istanza di una finestra "Finder" in modo tale da avere un'opzione che dice "Apri terminale qui". Sarebbe davvero utile.


5
Esistono molte risposte a una domanda simile su Stack Overflow .
Rob Kennedy,

4
questo sito dovrebbe essere un posto più appropriato per chiedere però
ericn

Risposte:


134

A partire da Mac OS X Lion 10.7, Terminal fornisce servizi per l'apertura di una nuova finestra o scheda del terminale nella cartella selezionata in Finder. Funzionano anche con nomi di percorso assoluti selezionati nel testo (in qualsiasi applicazione). È possibile abilitare questi servizi con Preferenze di Sistema> Tastiera> Tasti di scelta rapida> Servizi . Cerca "Nuovo terminale nella cartella" e "Nuova scheda Terminale nella cartella". Puoi anche assegnare loro i tasti di scelta rapida.

Inoltre, ora è possibile trascinare le cartelle (e i percorsi) sull'icona dell'applicazione Terminale per aprire una nuova finestra del terminale o su una barra delle schede in una finestra del terminale per creare una nuova scheda in quella finestra. Se si trascina su una scheda (anziché nella vista terminale) verrà eseguito un cdcomando completo per passare a quella directory senza alcuna digitazione aggiuntiva.

A partire da OS X Mountain Lion 10.8, anche il comando-trascinamento in un terminale eseguirà un cdcomando completo .

Nota: il servizio Nuovo terminale nella cartella diventerà attivo quando si seleziona una cartella nel Finder . Non è possibile semplicemente aprire la cartella ed eseguire il servizio "sul posto". Torna alla cartella principale, seleziona la cartella pertinente, quindi attiva il servizio tramite il menu Servizi o il menu contestuale.


2
"Inoltre, ora puoi trascinare le cartelle (e i percorsi) sull'icona dell'applicazione Terminale per aprire una nuova finestra del terminale", mi stai prendendo in giro? è FANTASTICO! :)
phil

3
In Mavericks 10.9.4 - le scorciatoie non funzionano per me. Grazie per il suggerimento Drag and Drop :)
amar

1
@amar Potresti condividere con noi quello che hai fatto? Anche rotto per me in 10.10
OJFord

2
@Olive - dopo l'aggiornamento a scorciatoie Yesomite non funzionava più per me :(
amar

4
Una cosa che ho notato, e questo è con El Capitan, è che devi selezionare la cartella in Finder (fai clic sulla cartella che vedi all'interno di finder). Il modo in cui mi aspettavo che funzionasse è che avrebbe aperto una finestra Terminale nella cartella corrente. In effetti, devi selezionare la cartella all'interno della finestra.
sillygwailo,

19

La soluzione ai tuoi problemi si chiama Go2Shell e fa esattamente quello che stai descrivendo. Puoi trovarlo su App Store e soprattutto ... è totalmente gratuito.

Go2Shell


Se vuoi usare iTerm invece con Go2Shell, vedi questa risposta per far apparire le preferenze . O in breve, digitare open -a Go2Shell --args configper visualizzare la configurazione.
Jeromy Anglim,

@jherran sembra essere ok ora
Colas

1
L'ultima versione non può essere installata tramite l'app store, ma dal loro sito Web zipzapmac.com/Go2Shell o da brew cask install go2shell.
fiedl

sono stato in grado di installare l'ultima versione, v1.2.2 dall'app store di apple / itunes, funzionando perfettamente bene
computingfreak

14

Un approccio diverso: DTerm , che ti dà un prompt dei comandi mobile nella parte superiore della finestra. Funziona con molte app, non solo con Finder.


13

cdto sembra che sia proprio quello di cui hai bisogno. È una mini-applicazione, progettata per essere inserita nella barra degli strumenti del Finder, quando la esegui si aprirà una finestra del terminale e cdla directory corrente nel Finder.


10

Per coloro che usano iTerm, la sintassi AppleScript è cambiata in iTerm versione 3. Ecco la procedura completa da seguire per creare un collegamento nel Finder.

  1. Avvia Automator.

  2. Seleziona "Applicazione":

illustrazione delle istruzioni

  1. Scegli "Esegui Applescript":

inserisci qui la descrizione dell'immagine

  1. Incolla il codice qui sotto:

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

inserisci qui la descrizione dell'immagine

  1. Fai clic su "File" -> "Esporta" per esportarlo come .app, salvalo in /Applications.

  2. Sposta l'applicazione nella barra delle icone del Finder tenendo premuto :

inserisci qui la descrizione dell'immagine

Fatto !

Puoi cambiare l'icona nel Finder seguendo le istruzioni qui (cambia l'icona dell'applicazione che hai creato con Automator).


9

Uso principalmente questa funzione:

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

È inoltre possibile assegnare un collegamento a uno script come quelli di seguito.

Riutilizzare una scheda esistente o creare una nuova finestra (Terminale):

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

Riutilizzare una scheda esistente o creare una nuova scheda (Terminale):

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

Crea sempre una nuova scheda (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

I primi due script presentano alcuni vantaggi rispetto ai servizi aggiunti in 10.7:

  • A partire dal 10.9, esiste un bug in cui i servizi che ricevono cartelle come input non sono mai elencati nel menu dei servizi nella vista a colonne. Se si assegna una scorciatoia da tastiera alla scheda Nuova scheda terminale sul servizio Cartella, non funziona nella vista colonna.
  • Usano la cartella sulla barra del titolo invece di richiedere prima di selezionare una cartella.
  • Riutilizzano la scheda in primo piano se non è occupata, ad esempio eseguendo un comando, mostrando una pagina man o eseguendo emacs.

Se si utilizza 10.7 o 10.8, passare tell application "Finder" to set p to POSIX path of (insertion location as alias)a:

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

C'è un bug in 10.7 e 10.8 (ma non in 10.9 o 10.6) in cui Finder ignora le finestre create dopo l'ultimo spostamento del focus su un'altra applicazione e viceversa quando si ottiene la insertion locationproprietà.



3

Puoi trascinare qualsiasi file o cartella dal cercatore su una finestra Terminale per inserire una stringa di detto file o il percorso assoluto della cartella.

Funzionerà su qualsiasi installazione standard (almeno fino alla 10.4 Tiger [ ¿forse prima? ]) Senza la necessità di software aggiuntivo il nostro rigirarsi delle preferenze, uno dei quali potrebbe in seguito spaventare il tuo amico non tecnico se capita che sia suo / lei Mac a cui stai lavorando. Questo trucco funziona anche per qualsiasi processo in esecuzione nel Terminale, ad esempio emacs o vi (supponendo che tu abbia vi nella modalità appropriata, o comunque è che tu che usi vi lo fai).







-1

 

    OpenTerminal


1
Dead link :(. Questo è il motivo per cui solo i link hanno una vita breve o dovrebbero essere controllati regolarmente per rimanere in vita.
dan

@daniel Sostituito con il collegamento archive.org
grg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.