Questão Diferença entre aplicativos e arquivos .app em / usr / bin?


Eu realmente não entendo a diferença. Eu tentei colocar um arquivo .app em / usr / bin e executar se do terminal, mas isso não faz nada. Que tipo de arquivos estão lá?


4


origem




Respostas:


Wikipedia tem um bom artigo sobre Pacote de aplicativoss.

Em suma, um .app não é um arquivo: é uma árvore de diretórios com uma estrutura específica. O binário real que é executado (ou seja, o equivalente do binário que você encontraria em /usr/bin) é PackageName.app/Contents/MacOS/PackageName. No entanto, você (geralmente) não pode simplesmente copiar o arquivo para '/ usr / bin' e executá-lo, porque ele espera ter muitos outros arquivos necessários dentro da pasta .app - por exemplo, muitos aplicativos têm os arquivos de tradução que permitem apresentar a interface do usuário em diferentes idiomas sob PackageName.app/Contents/Resources/de.lproj (Onde de acontece a significar german).

Em alguns casos, o .app pacote pode conter executáveis ​​que você pode executar diretamente - por exemplo, eu ebook-convert binário do calibre.app pacote, executando /Applications/calibre.app/Contents/Resources/loaders/ebook-convert. Neste caso, o e-book-convertido é um script python auto-suficiente e é perfeitamente feliz de ser chamado assim - nem todos os executáveis ​​serão tão felizes.

Você geralmente pode iniciar um .app chamando o binário principal diretamente - por exemplo, /Applications/Safari.app/Contents/MacOS/Safari vai lançar o Safari. No entanto, isso é um monte de digitação - open /Applications/Safari.app é um atalho que faz a mesma coisa.

man open tem muitos mais exemplos de uso open para agir como se o usuário tivesse clicado duas vezes em um ícone no localizador.


6



Apenas uma nota para adicionar aqui. No Finder, você pode ver o que há dentro de um Application Bundle (ou qualquer pacote) clicando com o botão direito do mouse em seu ícone e selecionando "Show Package Contents" no menu de contexto. - Josh


Como Tomas Markauskas disse, o .app é um pacote.

Por que você tentou mover um arquivo .app para / usr / bin? Eu vou adivinhar que o que você realmente quer saber é "como faço para abrir um arquivo usando Foo.app quando estou na linha de comando?"

Se estou certo, a resposta não é mover o arquivo .app para / usr / bin. A resposta certa é usar o open comando:

$ open -a Foo some_file

Usando open sem o -a irá abrir o arquivo com seu aplicativo padrão - como se você tivesse clicado duas vezes some_file no Finder.


4





.app não é realmente um arquivo, mas uma pasta (ou pacote de aplicativos) com muitos arquivos diferentes. Ele também contém os arquivos executáveis ​​que você realmente executa.


2





Você também pode executar o aplicativo diretamente com o open comando:

open /Applications/Safari.app/

0