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.