4

Я не очень понимаю разницу. Я попытался поместить файл .app в /usr /bin и выполнить if с терминала, но это ничего не дает. Какие файлы там?

4 ответа4

6

В Википедии есть хорошая статья о комплекте приложений .

Короче говоря, .app - это не файл: это дерево каталогов с определенной структурой. Фактический исполняемый файл (т. Е. Эквивалент двоичного файла, который вы найдете в /usr/bin) - это PackageName.app/Contents/MacOS/PackageName . Тем не менее, вы (как правило) не можете просто скопировать этот файл в /usr /bin и запустить его, потому что он будет ожидать, что в папке .app также будет много других необходимых ему файлов - например, многие приложения имеют файлы перевода, которые позволяют им представлять пользовательский интерфейс на разных языках в PackageName.app/Contents/Resources/de.lproj (где de означает german).

В некоторых случаях в .app могут содержаться исполняемые файлы, которые вы можете выполнять напрямую - например, я часто использую двоичный файл ebook-convert из комплекта calibre.app , запуская /Applications/calibre.app/Contents/Resources/loaders/ebook-convert . В этом случае ebook-convert оказывается автономным скриптом Python и совершенно счастлив, если его так называют - не все исполняемые файлы будут такими же счастливыми.

Обычно вы можете запустить .app , вызвав основной двоичный файл напрямую - например, /Applications/Safari.app/Contents/MacOS/Safari запустит Safari. Тем не менее, это много печатать - open /Applications/Safari.app это ярлык, который делает то же самое.

man open есть еще много примеров использования open чтобы действовать так, как если бы пользователь дважды щелкнул значок в поиске.

4

Как сказал Томас Маркаускас, .app - это пакет.

Почему вы пытаетесь переместить файл .app в /usr /bin? Я собираюсь догадаться, что вы действительно хотите знать, это «как открыть файл с помощью Foo.app, когда я в командной строке?"

Если я прав, то ответ не в том, чтобы переместить файл .app в /usr /bin. Правильный ответ - использовать команду open :

$ open -a Foo some_file

Использование open без -a откроет файл с приложением по умолчанию - так же, как если бы вы дважды щелкнули на some_file в Finder.

2

На самом деле .app - это не файл, а папка (или комплект приложений) с множеством разных файлов. Он также содержит исполняемые файлы, которые вы на самом деле запускаете.

0

Вы также можете запустить приложение напрямую с помощью команды open :

open /Applications/Safari.app/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .