Como posso abrir uma janela do Terminal diretamente do meu local atual do Finder?

111

Eu queria saber se havia algum, eu poderia clicar com o botão direito do mouse dentro de qualquer instância da janela "Finder", de modo que eu tenha uma opção que diz "Open Terminal Here". Seria realmente útil.

hairboat
fonte
5
Existem muitas respostas para uma pergunta semelhante no Stack Overflow .
Rob Kennedy
4
esse site deve ser um local mais apropriado para perguntar
ericn

Respostas:

134

No Mac OS X Lion 10.7, o Terminal fornece serviços para abrir uma nova janela ou guia do terminal na pasta selecionada no Finder. Eles também trabalham com nomes de caminho absolutos selecionados no texto (em qualquer aplicativo). Você pode ativar esses serviços em Preferências do sistema> Teclado> Atalhos do teclado> Serviços . Procure por "Novo terminal na pasta" e "Guia Novo terminal na pasta". Você também pode atribuir a eles teclas de atalho.

Além disso, agora você pode arrastar pastas (e nomes de caminho) para o ícone do aplicativo Terminal para abrir uma nova janela do terminal ou para uma barra de guias da janela do terminal para criar uma nova guia nessa janela. Se você arrastar para uma guia (e não para a visualização do terminal), ele executará um cdcomando completo para alternar para esse diretório sem nenhuma digitação adicional.

A partir do OS X Mountain Lion 10.8, arrastar comandos em um terminal também executará um cdcomando completo .

Nota: O serviço Novo terminal na pasta será ativado quando você selecionar uma pasta no Finder . Você não pode simplesmente abrir a pasta e executar o serviço "no local". Volte para a pasta pai, selecione a pasta relevante e ative o serviço através do menu Serviços ou menu de contexto.

Chris Page
fonte
2
"Além disso, agora você pode arrastar pastas (e nomes de caminho) para o ícone do aplicativo Terminal para abrir uma nova janela do terminal" - você está brincando comigo? Fantástico! :)
phil
3
No Mavericks 10.9.4 - os atalhos não funcionam para mim. Obrigado por Drag and Drop dica :)
amar
1
@amar Você poderia compartilhar conosco o que fez? Também quebrado para mim em 10.10
OJFord 4/14
2
@Olive - depois que eu atualizar para Yesomite atalhos não trabalharam para mim :(
amar
4
Uma coisa que notei, e isso é com o El Capitan, é que você precisa selecionar a pasta no Finder (clique uma vez na pasta que vê dentro do Finder). A maneira que eu esperava que isso funcionasse é que ele abriria uma janela do Terminal na pasta atual. Na verdade, você precisa selecionar a pasta dentro da janela.
#
19

A solução para seus problemas é chamada Go2Shell e faz exatamente o que você está descrevendo. Você pode encontrá-lo na App Store e o melhor de tudo ... é totalmente gratuito.

Go2Shell

z4mba
fonte
Se você deseja usar o iTerm com o Go2Shell, consulte esta resposta para exibir as preferências . Ou, em resumo, digite open -a Go2Shell --args configpara abrir a configuração.
Jeromy Anglim
@jherran parece ser ok agora
Colas
1
A versão mais recente não pode ser instalada pela App Store, mas pelo site zipzapmac.com/Go2Shell ou por brew cask install go2shell.
Fiedl
eu era capaz de instalar a última versão, v1.2.2 da loja da Apple / iTunes App, funcionando perfeitamente bem
computingfreak
14

Uma abordagem diferente: o DTerm , que fornece um prompt de comando flutuante na parte superior da janela. Isso funciona em muitos aplicativos, não apenas no Finder.

jtbandes
fonte
13

O cdto parece que é exatamente o que você precisa. É um miniaplicativo, projetado para ser colocado na barra de ferramentas do Finder. Quando você o executa, ele abre uma janela de terminal e cdo diretório atual no Finder.

Mark Szymanski
fonte
10

Para aqueles que usam o iTerm, a sintaxe AppleScript mudou na versão 3. do iTerm. Aqui está o procedimento completo a seguir para criar um atalho no Finder.

  1. Inicie o Automator.

  2. Selecione "Aplicativo":

ilustração de instruções

  1. Escolha "executar o Applescript":

insira a descrição da imagem aqui

  1. Cole o código abaixo:

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

insira a descrição da imagem aqui

  1. Clique em "Arquivo" -> "Exportar" para exportar como um .app, salve-o no /Applications.

  2. Mova o aplicativo para a barra de ícones do Finder enquanto mantém pressionado :

insira a descrição da imagem aqui

Feito !

Você pode alterar o ícone no Finder seguindo as instruções aqui (altere o ícone do aplicativo que você criou com o Automator).

vmarquet
fonte
9

Eu principalmente uso esta função:

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

Você também pode atribuir um atalho a um script como os abaixo.

Reutilize uma guia existente ou crie uma nova janela (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

Reutilize uma guia existente ou crie uma nova guia (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

Sempre crie uma nova guia (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

Os dois primeiros scripts têm algumas vantagens em comparação com os serviços adicionados na versão 10.7:

  • A partir da versão 10.9, existe um erro no qual os serviços que recebem pastas como entrada nunca são listados no menu de serviços na visualização de colunas. Se você atribuir um atalho de teclado ao serviço Nova Guia Terminal na Pasta, ele não funcionará na exibição de coluna.
  • Eles usam a pasta na barra de título em vez de exigir que você selecione uma pasta primeiro.
  • Eles reutilizam a guia mais à frente, se não estiver ocupada, por exemplo, executando um comando, exibindo uma página de manual ou executando o emacs.

Se você usa 10.7 ou 10.8, altere tell application "Finder" to set p to POSIX path of (insertion location as alias)para:

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

Há um erro nas versões 10.7 e 10.8 (mas não nas 10.9 ou 10.6) em que o Finder ignora as janelas criadas após a última vez que o foco foi movido para outro aplicativo e retornado ao obter a insertion locationpropriedade.

Lri
fonte
3

Você pode arrastar qualquer arquivo ou pasta do localizador para uma janela do Terminal para inserir uma sequência do referido arquivo ou caminho absoluto da pasta.

Isso funcionará em qualquer instalação padrão (pelo menos até 10.4 Tiger [ talvez mais cedo? ]), Sem a necessidade de software adicional, nossas modificações de preferências, uma das quais poderá mais tarde assustar seu amigo não-techy se ele for seu Mac no qual você está trabalhando. Este truque também funciona para qualquer processo que esteja sendo executado no Terminal, por exemplo, emacs ou vi (supondo que você tenha o vi no modo apropriado, ou seja, as pessoas que usam o vi).

roosto
fonte
3

Tente isso: https://github.com/nmadhok/OpenInTerminal

Ele funciona com os itens da barra lateral do Finder, várias seleções de pasta / arquivo e tudo o que você poderia imaginar. Realmente fácil de usar!

nmadhok
fonte
Funciona bem com alta serra!
Ivelin
2

ShellHere

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

… Clique com o botão direito dentro de qualquer instância da janela "Finder" ...

Não sei se é possível acessá-lo através de um menu contextual, mas mantenho o ShellHere na barra de ferramentas do Finder .

Graham Perrin
fonte
O link não funciona #
1150 Ivelin
1

Você pode o aplicativo que desenvolvi o FinderGo , que é de código aberto e fácil de usar

onmyway133
fonte
-1

 

    OpenTerminal

Oh Ho
fonte
1
. Link morto :( Esta é a razão pela qual link de apenas respostas têm uma vida curta ou deve ser verificado regularmente para se manter vivo.
dan
@daniel Substituído pelo link archive.org
grg