Différence entre les applications .app et les fichiers de / usr / bin?

4

Je ne comprends pas vraiment la différence. J'ai essayé de mettre un fichier .app dans / usr / bin et de l'exécuter depuis le terminal, mais cela ne fait rien. Quel genre de fichiers y vont?

quack quixote
la source

Réponses:

6

Wikipedia a un bon article sur Bundle d'application s.

En bref, un .app n'est pas un fichier: c'est une arborescence de répertoires avec une structure spécifique. Le binaire réel qui s'exécute (c’est-à-dire l’équivalent du binaire trouvé dans /usr/bin ) est PackageName.app/Contents/MacOS/PackageName. Cependant, vous (généralement) ne pouvez pas simplement copier ce fichier dans '/ usr / bin' et l'exécuter, car il s'attend à disposer de nombreux autres fichiers dans le dossier .app. Par exemple, de nombreuses 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 (où de arrive à dire german ).

Dans certains cas, le .app bundle peut contenir des exécutables que vous pouvez exécuter directement - par exemple, j’utilise souvent le ebook-convert binaire du calibre.app bundle, 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 - par exemple, /Applications/Safari.app/Contents/MacOS/Safari va lancer Safari. Cependant, cela fait beaucoup de dactylographie - open /Applications/Safari.app est un raccourci qui fait la même chose.

man open a beaucoup d'autres exemples d'utilisation open d'agir comme si l'utilisateur avait double-cliqué sur une icône dans le Finder.

James Polley
la source
Juste une note à ajouter ici. Dans le Finder, vous pouvez voir le contenu d'un ensemble d'applications (ou de tout autre ensemble) en cliquant avec le bouton droit de la souris sur son icône et en sélectionnant "Afficher le contenu du paquet" dans le menu contextuel.
Josh
4

Comme l'a dit Tomas Markauskas, le .app est un paquet.

Pourquoi avez-vous essayé de déplacer un fichier .app vers / usr / bin? Je vais deviner que ce que vous voulez vraiment savoir, c'est "comment puis-je ouvrir un fichier en utilisant Foo.app quand je suis en ligne de commande?"

Si je ne me trompe pas, la solution ne consiste pas à déplacer le fichier .app vers / usr / bin. La bonne réponse est d'utiliser le open commander:

$ open -a Foo some_file

En utilisant open sans le -a ouvrira le fichier avec son application par défaut - comme si vous double-cliquiez sur some_file dans le Finder.

Doug Harris
la source
2

.app n’est en réalité pas un fichier, mais un dossier (ou un ensemble d’applications) contenant de nombreux fichiers différents. Il contient également les fichiers exécutables que vous exécutez réellement.

Tomas Markauskas
la source
0

Vous pouvez également exécuter l'application directement avec le open commander:

open /Applications/Safari.app/
Ken
la source