2 votos

Terminal: comando para mostrar la carpeta de aplicaciones

Hace poco descubrí que puedo abrir la aplicación desde la Terminal de esta manera:

$ open -a TextEdit

¿Existe algún comando que simplemente muestre la carpeta de aplicaciones en lugar de abrirla? De tal manera que pueda hacer esto:

$ alias vmrun=\"`some-command 'VMware Fusion'`/Contents/Library/vmrun\"

Necesito eso some-command para imprimir la carpeta de la aplicación VMware Fusion.

ACTUALIZACIÓN: No sé dónde está instalada la aplicación, de lo contrario podría codificarla en el script

3voto

jwbensley Puntos 2102

Acabo de crear y subir un Gist de GitHub GitHub Gist que puede ayudarte.

La funcionalidad principal es:

function get_apps_folder () { 
    mdfind -0 -onlyin / \
        'kMDItemKind=="Application" && kMDItemDisplayName="'"${1:-TextEdit}"'"' \
    | xargs -0 -I{} dirname {} 
}

function open_apps_folder () {
    open $(get_apps_folder "$1")
}

Podrías tomar eso y añadir las dos funciones a tu ~/.bash_profile y estarían disponibles para cualquier sesión de shell interactiva que estés utilizando. (Y sí, evitar las comillas simples y dobles mezcladas e incrustadas puede ser complicado) :-)

Pero, para dar una mejor explicación, la parte principal es:

mdfind -0 -onlyin / 'kMDItemKind=="Application" && kMDItemDisplayName="VMware Fusion"' | xargs -0 -I{} open {}

El -onlyin /path limita la búsqueda a sólo el volumen root, de lo contrario, cualquier volumen "buscable por Spotlight" que se adjunte, probablemente también se buscará, incluyendo Time Machine, lo que puede ser difícil de manejar y / o verboso, por lo que el uso de -onlyin / .

En el Gist, cada línea emitida por mdfind se alimenta a xargs que llama open sobre lo que se le pasa. Tenga en cuenta que no hay una comprobación particularmente robusta de lo que se pasa a xargs (es decir, está asumiendo que está recibiendo un directorio).

mdfind y mdls pueden ser bastante útiles para cosas como ésta, aunque puede costar un poco acostumbrarse a ellas. Yo suelo utilizar mdls /path/to/file para tener una idea de los metadatos que tiene ese tipo de archivo. Luego puedo tomar esas claves y valores para buscar usando mdfind . Puedes encontrar un montón de páginas, ejemplos y documentación por ahí, BTW.

2voto

user3439894 Puntos 5883

Creo que esto es lo que está buscando:

alias vmrun=\"`osascript -e 'tell application "Finder" to get POSIX path of (application file id "com.vmware.fusion" as alias)'`/Contents/Library/vmrun\"

Ahora cuando escribo vmrun sin ningún argumento, en un Terminal y pulse Enter se produce el archivo de ayuda interna, como debe ser.

Esto funciona en mi sistema, sin embargo devuelve la primera ocurrencia de la ruta del paquete de aplicaciones "VMware Fusion.app". Tengo cuatro visiones diferentes instaladas, así que esto no sería ideal en mi situación, aunque para aquellos que sólo tienen una versión instalada funciona.

2voto

tjt263 Puntos 388

Sólo tienes que teclear:

mdfind <target_file_name.ext>

Si hay alguna coincidencia, se le presentará la(s) ruta(s) asociada(s) correspondiente(s). Si hay más de una, elige la que sea apropiada y codifícala.


Por ejemplo:

me@MacBook-Pro:~$mdfind "VMware Fusion.app"
/opt/homebrew-cask/Caskroom/vmware-fusion/7.1.2-2779224/VMware Fusion.app

O más bien, uno de estos:

you@MacBook-Pro:~$mdfind "VMware Fusion.app"
/Applications/VMware Fusion.app
/Users/you/Applications/VMware Fusion.app

1voto

Dos opciones rápidas y sencillas:

  1. Puede utilizar Spotlight ( mdfind ) a través de la línea de comandos para los elementos de alto nivel:

    appLocation=$(mdfind Fusion.app)
    echo $appLocation
    /Applications/VMware Fusion.app
  2. O si utiliza el locate binario (el comando previo para habilitarlo se notará la primera vez que lo use).

    appLocation=$(locate vmrun)
    echo "Found at " $appLocation
    Found at /Applications/VMware Fusion.app/Contents/Library/vmrun

0voto

klanomath Puntos 19587

Tienes que añadir:

alias vmrun='/Applications/VMware\ Fusion.app/Contents/Library/vmrun'

a su ~/.bash_profile guardar el archivo y la fuente ~/.bash_profile . En el futuro sólo tienes que escribir vmrun para lanzar la herramienta.

Si necesitas un acceso rápido a más comandos de este directorio puedes añadir:

:/Applications/VMware\ Fusion.app/Contents/Library/

a su camino.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X