Por alias, me refiero al acceso directo a la carpeta creado cuando haces clic derecho en una carpeta en Finder y seleccionas "Crear alias". Puedo Seguir enlace simbólico en la Terminal con cd
, pero no funciona en los alias: bash: cd: example-alias: Not a directory
. ¿Es posible cambiar el directorio al destino de un alias en la Terminal?
9
Respuestas:
Para habilitar una carpeta de cambiar al alias que he encontrado lo siguiente en Mac OS X Hints .
Compile el siguiente código fuente con el siguiente comando:
Esto creará el ejecutable 'getTrueName' en el mismo directorio que la fuente. Puede agregarlo a su RUTA, o simplemente copiarlo directamente a / usr / bin o / usr / local / bin para que sea fácil acceder.
Código fuente C para getTrueName (copie el texto y guarde el archivo como getTrueName.c en su directorio de inicio):
Incluya lo siguiente en ~ / .bash_profile o cree un nuevo archivo ~ / .bash_profile con el siguiente contenido:
Probablemente tenga que reiniciar la Terminal para cargar su .bash_profile modificado.
Probado en Yosemite 10.10.2 y gcc 4.2 (Xcode 6.2) y funciona.
Un enfoque similar está disponible en superuser.com
fuente
No he probado la respuesta de @klanomath, pero solía haber una biblioteca de Python para obtener el objetivo de un alias, pero el soporte de Carbon se eliminó de los marcos de Apple. Se puede hacer en el Objetivo C, consulte https://stackoverflow.com/a/21151368/838253 .
La mejor opción es usar enlaces simbólicos, pero desafortunadamente Finder no le permite crearlos.
He escrito un servicio OS X que crea enlaces simbólicos (que son compatibles con Finder y Terminal). Esto ejecuta el siguiente script bash en un flujo de trabajo del Finder. (Desafortunadamente, no parece posible publicar el código de Automator en un formato legible).
fuente
curFolder
ylinkFile
no se utilizan, ¿por qué están allí? Debe haber espacios alrededor del operador de comparación, por ejemplo,$fileExists == ""
y considere usar en$(..)
lugar de backticks heredados.Aquí está mi opinión sobre esto.
agregue y cargue esta función a su perfil.
Actualizar.
builtin cd
Usé la línea que se muestra en la respuesta @klanomath que le permite anular el comando cd. Entonces ahora podemos usar:cd /path/to/example-alias
o
cd /path/to/example
La función debería regresar y cd a la ruta original de los alias originales o la ruta normal.
fuente
Mientras que un enlace simbólico (alias UNIX) se ve igual que un alias Finder dentro de Finder, son dos tipos diferentes de alias.
Un enlace simbólico solo mantendrá el camino al que conduce y se romperá de forma permanente o temporal si el recurso se mueve o se encuentra en una unidad desconectada o compartida, respectivamente.
Un alias del Finder es técnicamente un archivo ordinario con instrucciones para el Finder. El Finder puede usar esta información para localizar un archivo / directorio de destino movido hasta cierto punto. Si un recurso objetivo de un alias está en un punto compartido de red montado, también contiene información sobre qué elemento de Llavero usar para iniciar sesión en el punto compartido para abrirlo.
Entonces, a menos que escriba un script o programa para leer el archivo de alias Finder, no lo usará como un directorio, sino como un archivo en la Terminal.
Alternativamente, puede eliminar el alias actual del Finder y crear un enlace simbólico en su lugar. El comando sería
ln -s /path/to/original
crear un enlace simbólico en el directorio actual. La ruta puede ser una ruta completa o relativa.fuente
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
Con la ayuda de este consejo , modifiqué el applecript de @ markunte para eliminar el mensaje de advertencia anterior
fuente
Como la mayoría de los sistemas operativos (además de Windows), OS X admite scripts Bash. Primero cree el archivo en su escritorio (o la ubicación que desee):
toque ~ / Desktop / PlexConnect.sh A continuación, configure los permisos del archivo de modo que sea ejecutable:
chmod + x ~ / Desktop / PlexConnect.sh A continuación, puede editar el contenido de la secuencia de comandos con el editor de texto de su elección, solo asegúrese de que comience con la siguiente línea para que el sistema sepa ejecutarlo utilizando el shell (Bash):
! / bin / bash
Luego se puede hacer doble clic en el archivo, iniciando Terminal y ejecutándolo.
Sin embargo, una solución más elegante para esto puede ser crear una aplicación AppleScript que ejecute el comando por usted. Abra la aplicación "Editor de secuencias de comandos" y pegue lo siguiente:
hacer el script de shell "/Applications/PlexConnect-master/PlexConnect.py" con privilegios de administrador Guarde esto como una "Aplicación", nombrándolo como desee. Al abrirlo, le dará el mensaje de contraseña estándar de OS X, ejecutará el script y luego se cerrará.
fuente