我真的不明白其中的区别。我尝试将 .app 文件放入 /usr/bin 并从终端执行 if 但这没有任何作用。里面放的是什么文件?
维基百科有一篇关于Application Bundle的好文章。
简而言之,a.app不是文件:它是具有特定结构的目录树。实际运行的二进制文件(即与您在 中找到的二进制文件等效/usr/bin)是PackageName.app/Contents/MacOS/PackageName. 但是,您(通常)不能只是将该文件复制到“/usr/bin”并运行它,因为它会期望在 .app 文件夹中还有许多它需要的其他文件 - 例如,许多应用程序都有允许他们以不同语言呈现 UI 下的翻译文件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通过直接调用主二进制文件来启动 a - 例如,/Applications/Safari.app/Contents/MacOS/Safari将启动 Safari。但是,这是大量输入 -open /Applications/Safari.app是执行相同操作的快捷方式。
man open有更多的使用示例,open就像用户在 finder 中双击了一个图标一样。
正如 Tomas Markauskas 所说,.app 是一个捆绑包。
您为什么尝试将 .app 文件移至 /usr/bin?我猜你真正想知道的是“当我在命令行时如何使用 Foo.app 打开文件?”
如果我是对的,答案不是将 .app 文件移动到 /usr/bin。正确的答案是使用open命令:
$ open -a Foo some_file
Run Code Online (Sandbox Code Playgroud)
open如果不使用,将使用默认应用程序打开文件——就像在 Finder 中-a双击一样。some_file
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |