En Terminal, ¿puedo encontrar la carpeta Finder actual?

Comúnmente se pregunta cómo obtener un mensaje de Terminal desde una ventana del Finder. Estoy preguntando lo contrario.

Me gustaría una forma de línea de comandos para determinar el directorio de trabajo de la ventana "actual" del Finder.

¿Qué quiere decir con la ventana "actual" del Finder cuando Terminal es la aplicación activa? Por definición, ninguna ventana del Finder tiene foco entonces...
y más, ¿qué sucede si Finder tiene varias ventanas abiertas? ¿Cuál es la ventana actual?
El opuesto real probablemente estaría open .en la Terminal...
¿Por qué no simplemente arrastra la carpeta actual que se muestra en la ventana del Finder a la línea de comando de la ventana de la aplicación Terminal?

Respuestas (5)

El siguiente comando devolverá la ruta a la primera ventana del Finder, si eso es lo que está buscando:

osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)'

Tenga en cuenta que esto no puede devolver una ruta POSIX si la ventana del frente no tiene una ruta POSIX. Entonces, si la ventana del Finder que se encuentra más adelante tiene una búsqueda en curso/finalizada, es una carpeta inteligente u otra ubicación mágica (como su Mac debajo de los dispositivos, que enumera todos los volúmenes montados y la red).

Buscar/Carpeta inteligente/Sin ventana de Finder devuelve:

error de ejecución: no se puede convertir la «clase fvtg» de la ventana 1 de la aplicación "Finder" en un alias de tipo. (-1700)

Y tratando de ejecutar el comando al ver su Mac:

error de ejecución: No se devolvió ningún resultado de alguna parte de esta expresión. (-2763)

Esta es una buena respuesta. Uso TotalFinder en modo "visera" (se retrae cuando no lo estás usando). Si se retrae TotalFinder y ejecuto ese comando, siempre aparece el mensaje de error. Si TotalFinder está anclado, obtengo la ruta deseada. Lástima que no funcione en modo anclado; Oh bien. Caso de uso : Quería escribir una herramienta de línea de comandos para crear un nuevo archivo (texto, Word, Excel, ...) en la ventana "actual" del Finder, con lo que me refiero al enfoque más reciente. Lo he hecho de una manera diferente usando DTerm para abrir un minimensaje desde la ventana del Finder. Funciona bien.
Gracias por la respuesta. Una pregunta rápida de un principiante, ¿dónde encontraste ese comando específico del sistema operativo? Por ejemplo, es posible que un principiante nunca escuche dicho comando osascript, entonces, ¿tiene una forma más sistemática de buscar qué comando desea que no sea buscar en Google al azar?
@Jason El osascript es, de hecho, específico del sistema operativo: le dice al sistema operativo que ejecute un AppleScript (es el puente de línea de comandos entre el AppleScript basado en GUI y el shell de Unix). MacOS X (bueno, ahora estamos en la versión 11) es la fusión de dos sistemas operativos de larga data: Unix y Mac OS, y este comando en particular vincula sus dos lenguajes de secuencias de comandos distintos. Entonces, este comando en particular está profundamente arraigado en la doble ciudadanía de este sistema operativo.

pwd: imprime el nombre del directorio actual/de trabajo

open .: abre el directorio actual en el buscador

No estoy muy seguro, si esta es la respuesta a su pregunta. Además, ¿qué haces al obtener un "Mensaje de terminal desde una ventana del Finder"?
Creo que leyó mal ese gentmatt. Edit: sí, te diste cuenta. Creo que quiere decir cosas como 'solicitar aquí' un servicio para abrir una ventana de terminal desde Finder donde la ruta en Terminal está preestablecida a la ruta del buscador. Está buscando la función inversa.

Este chico tiene una gran respuesta http://coderwall.com/p/vp9zlw

Defina las dos funciones:

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 $@`"; };

Después de eso, puede escribir cdffcd en el directorio Finder.

Hola, he mejorado el formato para ti. Consulte la vista previa en vivo y la guía de formato cuando escriba publicaciones; son muy útiles. Bienvenido al sitio!

Si está utilizando zsh con oh-my-zsh, osx-Plugin proporciona la funcionalidad solicitada . Después de activar el complemento en el archivo de configuración (generalmente ~/.zshrc), se puede usar pfdpara obtener la ruta a la ventana del buscador actual y cdfhacer un cd.

insertion locationes básicamente el objetivo de la ventana 1 del Finder o el escritorio.

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

Hay un error en 10.7 y 10.8 donde las propiedades de destino y ubicación de inserción se refieren a la segunda ventana que se encuentra en primer plano después de abrir una nueva ventana.