Wikipedia a un bon article sur Ensemble d'applications s.
En bref, un .app
n'est pas un fichier : c'est une arborescence de répertoires avec une structure spécifique. Le binaire qui s'exécute (c'est-à-dire l'équivalent du binaire que vous trouveriez dans le fichier /usr/bin
) est PackageName.app/Contents/MacOS/PackageName
. Cependant, vous ne pouvez (généralement) pas simplement copier ce fichier dans '/usr/bin' et l'exécuter, parce que l'application s'attendra à avoir beaucoup d'autres fichiers dont elle a besoin dans le dossier .app également - par exemple, beaucoup d'applications ont les fichiers de traduction qui leur permettent de présenter l'interface utilisateur dans différentes langues sous PackageName.app/Contents/Resources/de.lproj
(donde de
signifie german
).
Dans certains cas, le .app
peut contenir des exécutables que vous pouvez exécuter directement - par exemple, j'utilise souvent l'application ebook-convert
binaire de la calibre.app
en exécutant /Applications/calibre.app/Contents/Resources/loaders/ebook-convert
. Dans ce cas, ebook-convert se trouve être un script Python autonome et est parfaitement heureux d'être appelé de cette façon - tous les exécutables ne seront pas aussi heureux.
Vous pouvez généralement commencer un .app
en appelant directement le binaire principal - ex, /Applications/Safari.app/Contents/MacOS/Safari
lancera Safari. Cependant, il faut beaucoup taper - open /Applications/Safari.app
est un raccourci qui fait la même chose.
man open
contient de nombreux autres exemples d'utilisation de open
pour agir comme si l'utilisateur avait double-cliqué sur une icône dans le Finder.