Instalé una aplicación y ahora puedo acceder a ella a través del terminal como myapplication. Sin embargo, es un alias. ¿Cómo puedo encontrar la ruta completa al archivo?
26
Puede usar type
y which
para determinar en qué bash
consiste un determinado comando y, si es una aplicación, dónde reside.
$ type type
type is a shell builtin
$ type cd
cd is a shell builtin
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/Users/danielbeck/bin/ls
$ which which
/usr/bin/which
$ which ls
/Users/danielbeck/bin/ls
Los comandos which
y type -P
solo funcionan para programas en su PATH
, por supuesto, pero no podrá ejecutar otros simplemente escribiendo su nombre de comando de todos modos.
Si está buscando una manera simple de determinar dónde está instalado un paquete de aplicación OS X (GUI) (como lo usa, por ejemplo, el open
comando), puede ejecutar el siguiente AppleScript corto desde la línea de comandos:
$ osascript -e 'tell application "System Events" to POSIX path of (file of process "Safari" as alias)'
/Applications/Safari.app
Esto requiere que el programa en cuestión (Safari en el ejemplo) se esté ejecutando.
Este es el método que actualmente uso para localizar el directorio de la aplicación Firefox en OSX y Linux. Debería ser fácil de adoptar para otra aplicación. Probado en OSX 10.7, Ubuntu 12.04, Debian Jessie
fuente
type
ytype -P
no lo hacen? ¿El código que no es OSX funciona en OS X? Si no, ¿puedes explicar por qué no? En caso afirmativo, ¿por qué tienes dos versiones?/bin
o/usr/bin
, etc, pero en vez instalado para/Applications/My3rdPartyApp.app
y el binario se almacena en un subdirectorioContents/MacOS
por lo que es bastante difícil de usar cualquier técnica multiplataforma para determinar la ubicación de la aplicación (de ahí el uso delsregister
) Peor aún, la estructura del directorio OSX coloca el binario en una ubicación separada de los recursos. El fragmento anterior se escribió para ayudar a localizar eldefaults/pref
directorio de Firefox ./usr/bin/firefox
realidad no es el binario de Firefox, por lo que utilizo la salida dereadlink
para localizar a dónde apunta y luego encontrar eldefaluts/prefs
directorio desde allí. En una nota al margen, sobre el enlace simbólico: Hacerls -al /usr/bin/* |grep -- '->' |wc -l
ilustra unos 303 binarios en ese directorio, mi configuración de Ubuntu son en realidad enlaces simbólicos. (alrededor del 16% de ellos) Por esta razón, el código anterior ** debería * eventualmente modificarse para resolver enlaces simbólicos de forma recursiva hasta que encuentre la ruta canónica al binario.type -P
pregunta, no estoy lo suficientemente familiarizado con ese comando para responder la pregunta. Quizás puedas elaborar un poco. :)type
porque fue la base de la primera respuesta (y aceptada). Es un shell incorporado que indica cómo se interpretarían los nombres especificados si se usaran como comandos. Aquí se describe la versión POSIX, que es bastante básica . … (Continúa)Si el programa se está ejecutando, llame
fuente
La ruta de los binarios se referencia en la
$PATH
variable.Puedes ver su contenido con
env
.fuente
$PATH
se puede ver conenv
, peroecho $PATH
sería menos detallado.Puede usar el comando " alias " en la terminal para enumerar todos sus alias. O si está en un directorio, puede usar " pwd " para mostrar su ruta actual.
Si conoce el nombre del archivo o una parte del mismo, puede usar " buscar " para ubicar su archivo.
fuente
En MAC (OS X) puedes hacer:
Ahora puede ver la ruta completa a su aplicación en la línea de comando y ejecutarla desde allí si lo desea.
Tomado de wikihow
fuente