Eu posso pensar em três maneiras diferentes de fazê-lo (os dois primeiros roubados de outro lugar, mas eu esqueço onde). Eu uso o terceiro, que chama um shell script do applescript, porque eu quero abrir uma nova janela toda vez e porque ela é a mais curta.
Ao contrário do script embutido 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 sua janela de localização (ou seja, você não precisa ter uma pasta selecionada para abri-lo ).
Também incluiu algumas funções bash para completar o Finder > Terminal > Círculo do 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 a cada vez através de um script de shell 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. (BONUS) Alias de Bash para abrir uma nova janela de localização para o diretório de trabalho atual em seu terminal
Adicione este alias ao seu .bash_profile.
alias f='open -a Finder ./'
5. (BONUS) Altere o diretório na sua janela de terminal para o caminho da janela do Finder frontal
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
}