Frage Unterschied zwischen .app-Anwendungen und Dateien in / usr / bin?


Ich verstehe den Unterschied nicht wirklich. Ich habe versucht, eine .app-Datei in / usr / bin zu setzen und zwar vom Terminal aus, aber das tut nichts. Welche Art von Dateien gehen dort hinein?


4
2018-01-06 22:18


Ursprung




Antworten:


Wikipedia hat einen guten Artikel dazu Anwendungsbündels.

Kurz gesagt, a .app ist keine Datei: Es ist ein Verzeichnisbaum mit einer bestimmten Struktur. Die eigentliche Binärdatei, die ausgeführt wird (dh das Äquivalent der Binärdatei, die Sie finden würden.) /usr/bin) ist PackageName.app/Contents/MacOS/PackageName. Sie können diese Datei jedoch (im Allgemeinen) nicht einfach nach '/ usr / bin' kopieren und ausführen, da sie davon ausgehen wird, dass sie auch viele andere Dateien innerhalb des .app-Ordners haben muss - zum Beispiel viele Anwendungen die Übersetzungsdateien, mit denen sie die Benutzeroberfläche in verschiedenen Sprachen darstellen können PackageName.app/Contents/Resources/de.lproj (woher de passiert damit german).

In einigen Fällen, die .app Bündel kann ausführbare Dateien enthalten, die Sie direkt ausführen können - zum Beispiel benutze ich oft die ebook-convert binär von der calibre.app bündeln, indem du rennst /Applications/calibre.app/Contents/Resources/loaders/ebook-convert. In diesem Fall handelt es sich bei ebook-convert um ein eigenständiges Python-Skript und es gefällt mir sehr, dass es so heißt - nicht alle ausführbaren Dateien werden so glücklich sein.

Sie können in der Regel eine starten .app indem Sie die Hauptbinär direkt aufrufen - zB /Applications/Safari.app/Contents/MacOS/Safari wird Safari starten. Dies ist jedoch viel Tipparbeit - open /Applications/Safari.app ist eine Abkürzung, die das Gleiche tut.

man open hat viele weitere Anwendungsbeispiele open so zu tun, als hätte der Benutzer auf ein Symbol im Finder doppelgeklickt.


6
2018-01-07 01:30



Nur eine Anmerkung, um hier hinzuzufügen. Im Finder können Sie sehen, was sich in einem Application Bundle (oder einem Bundle) befindet, indem Sie mit der rechten Maustaste auf das Symbol klicken und im Kontextmenü "Paketinhalt anzeigen" auswählen. - Josh


Wie Tomas Markauskas sagte, ist die App ein Bündel.

Warum haben Sie versucht, eine .app-Datei nach / usr / bin zu verschieben? Ich vermute, dass Sie wirklich wissen wollen, wie ich eine Datei mit Foo.app öffne, wenn ich in der Befehlszeile bin?

Wenn ich recht habe, lautet die Antwort nicht, die .app-Datei nach / usr / bin zu verschieben. Die richtige Antwort ist die Verwendung der open Befehl:

$ open -a Foo some_file

Verwenden open ohne das -a öffnet die Datei mit ihrer Standardanwendung - als ob Sie doppelt geklickt hätten some_file im Finder.


4
2018-01-06 23:21





.app ist eigentlich keine Datei, sondern ein Ordner (oder Application Bundle) mit vielen verschiedenen Dateien darin. Es enthält auch die ausführbaren Dateien, die Sie tatsächlich ausführen.


2
2018-01-06 22:33





Sie können die App auch direkt mit der App ausführen open Befehl:

open /Applications/Safari.app/

0
2018-01-07 00:30