Es wird häufig gefragt, wie man eine Terminal-Eingabeaufforderung aus einem Finder-Fenster erhält . Ich frage das Gegenteil.
Ich hätte gerne eine Befehlszeilenmethode, um das Arbeitsverzeichnis des "aktuellen" Finder-Fensters zu bestimmen.
Der folgende Befehl gibt den Pfad zum vordersten Finder-Fenster zurück, wenn Sie danach suchen:
osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)'
Beachten Sie, dass dies keinen POSIX-Pfad zurückgeben kann, wenn das vorderste Fenster keinen POSIX-Pfad hat. Wenn also das vorderste Finder-Fenster eine laufende/abgeschlossene Suche hat, ist es ein intelligenter Ordner oder ein anderer magischer Ort (wie Ihr Mac unter Geräte, der alle eingebundenen Volumes und das Netzwerk auflistet).
Suche/Intelligenter Ordner/Kein Finder-Fenster gibt Folgendes zurück:
Ausführungsfehler: Kann «class fvtg» von Fenster 1 der Anwendung „Finder“ nicht in Typ-Alias umwandeln. (-1700)
Und versuchen Sie, den Befehl auszuführen, wenn Sie Ihren Mac anzeigen:
Ausführungsfehler: Von einem Teil dieses Ausdrucks wurde kein Ergebnis zurückgegeben. (-2763)
osascript
. Haben Sie also eine systematischere Möglichkeit, nach dem gewünschten Befehl zu suchen, als nach dem Zufallsprinzip zu googeln?pwd
: Druckname des aktuellen/Arbeitsverzeichnisses
open .
: Aktuelles Verzeichnis im Finder öffnen
Dieser Typ hat eine großartige Antwort http://coderwall.com/p/vp9zlw
Definieren Sie die beiden Funktionen:
function ff { osascript -e 'tell application "Finder"'\
-e "if (${1-1} <= (count Finder windows)) then"\
-e "get POSIX path of (target of window ${1-1} as alias)"\
-e 'else' -e 'get POSIX path of (desktop as alias)'\
-e 'end if' -e 'end tell'; };\
function cdff { pushd "`ff $@`"; };
Danach können Sie cdff
cd in das Finder-Verzeichnis eingeben.
Wenn Sie zsh mit oh-my-zsh verwenden, wird die angeforderte Funktionalität vom osx-Plugin bereitgestellt . Nach Aktivierung des Plugins in der Konfigurationsdatei (normalerweise ~/.zshrc
) kann man pfd
den Pfad zum aktuellen Finder-Fenster finden und cdf
dorthin cd.
insertion location
ist im Grunde das Ziel von Finder-Fenster 1 oder Desktop.
f() {
cd "$(osascript -e 'tell app "Finder"
POSIX path of (insertion location as alias)
end')"
}
Es gibt einen Fehler in 10.7 und 10.8 , bei dem sich die Ziel- und Einfügepositionseigenschaften auf das zweitvorderste Fenster beziehen, nachdem ein neues Fenster geöffnet wurde.
Daniel
mmmmmm
Daniel Beck
open .
in Terminal ...David Anderson