为什么我可以在 Mac OS X 中查看某些 Unix 可执行文件,而其他的则不能?

Why can I view some Unix executable files in Mac OS X and not others?

我在 Mac Mac OS X 10.10 (Yosemite) 上使用专业书。当我转到 /usr/bin 时,git 是一个 unix 可执行文件。当我在 Sublime Text 中打开它时,我得到的只是不可读的机器代码。然而,当我打开一个不同的 Unix 可执行文件时——在我的例子中,是我刚刚编写的 shell 脚本,但还有其他的——我能够在 Sublime Text 中打开该文件并查看其中的内容脚本。我已经检查了两个文件的权限,它们是相同的。为什么打开某些文件时会有不同的行为?

可执行文件可以是脚本(在这种情况下您可以阅读文本)或二进制文件(ELF 格式的机器代码)。您的 shell 脚本是脚本; git 是一个 ELF 二进制文件。

您可以使用file 命令查看更多详细信息。例如,在我最近的 Linux 系统上:

$ file /usr/local/bin/git
/usr/local/bin/git: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped