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

4

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á?

    
por quack quixote 06.01.2010 / 23:18

4 respostas

6

A Wikipédia tem um bom artigo sobre Pacote de aplicativos s.

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 que eles apresentem a interface do usuário em diferentes idiomas em PackageName.app/Contents/Resources/de.lproj (onde de significa german ).

Em alguns casos, o pacote .app pode conter executáveis que você pode executar diretamente - por exemplo, eu geralmente uso o binário ebook-convert do pacote calibre.app , 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.

Normalmente, você pode iniciar um .app chamando o binário principal diretamente - por exemplo, /Applications/Safari.app/Contents/MacOS/Safari iniciará 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 outros exemplos de usar open para agir como se o usuário tivesse clicado duas vezes em um ícone no localizador.

    
por 07.01.2010 / 02:30
4

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

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

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

$ open -a Foo some_file

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

    
por 07.01.2010 / 00:21
2

.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.

    
por 06.01.2010 / 23:33
0

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

open /Applications/Safari.app/
    
por 07.01.2010 / 01:30

Tags