Posso pensar em três maneiras diferentes de fazer isso (as duas primeiras roubadas de outro lugar, mas esqueço onde). Eu uso o terceiro, que chama um script de shell do AppleScript, porque quero abrir uma nova janela todas as vezes e porque era a mais curta.
Diferente do script incorporado no OS X desde pelo menos 10.10, todos eles abrem o terminal em qualquer diretório que seja o diretório de trabalho atual na janela do seu localizador (ou seja, você não precisa ter uma pasta selecionada para abri-la).
Também incluíram algumas funções do bash para concluir o círculo Finder> Terminal> Finder.
1. Reutilize uma guia existente ou crie uma nova janela do Terminal:
tell application "Finder" to set myDir 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 myDir in window 1
else
do script "cd " & quoted form of myDir
end if
activate
end tell
2. Reutilize uma guia existente ou crie uma nova guia Terminal:
tell application "Finder" to set myDir 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 myDir in window 1
end tell
3. Gere uma nova janela toda vez através de um shell script chamado de um AppleScript
tell application "Finder"
set myDir to POSIX path of (insertion location as alias)
do shell script "open -a \"Terminal\" " & quoted form of myDir
end tell
4. (BÔNUS) Alias do bash para abrir uma nova janela do localizador para o diretório de trabalho atual no seu terminal
Adicione esse alias ao seu .bash_profile.
alias f='open -a Finder ./'
5. (BÔNUS) Altere o diretório na janela do terminal para o caminho da janela frontal do Finder
Adicione esta função ao seu .bash_profile.
cdf() {
target=`osascript -e 'tell application "Finder" to if (count of Finder windows) > 0 then get POSIX path of (target of front Finder window as text)'`
if [ "$target" != "" ]; then
cd "$target"; pwd
else
echo 'No Finder window found' >&2
fi
}