Je peux penser à trois façons différentes de le faire (les deux premiers volés ailleurs mais j'oublie où). J'utilise la troisième, qui appelle un script shell à partir de l'applescript, parce que je veux ouvrir une nouvelle fenêtre à chaque fois et parce qu'elle était la plus courte.
Contrairement au script intégré à OS X depuis au moins 10.10, tous ces éléments ouvrent le terminal dans n'importe quel répertoire qui est le répertoire de travail actuel dans votre fenêtre de recherche (c'est-à-dire que vous n'avez pas besoin d'avoir un dossier sélectionné pour l'ouvrir).
Comprend également quelques fonctions bash pour compléter le cercle Finder> Terminal> Finder.
1. Réutilisez un onglet existant ou créez une nouvelle fenêtre de 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. Réutilisez un onglet existant ou créez un nouvel onglet 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. Générez une nouvelle fenêtre à chaque fois via un script shell appelé depuis un 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 Bash pour ouvrir une nouvelle fenêtre de recherche pour le répertoire de travail actuel dans votre terminal
Ajoutez cet alias à votre .bash_profile.
alias f='open -a Finder ./'
5. (BONUS) Remplacez le répertoire de votre fenêtre de terminal par le chemin de la fenêtre principale du Finder
Ajoutez cette fonction à votre .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
}