为什么unix bin目录这样命名?

Eon*_*nil 6 history directory-structure

我认为该bin目录是二进制文件的地方。如果是这样,脚本文件呢?它们应该放在其他地方吗?

bin目录的历史记录是什么,如果bin二进制文件,我应该把脚本文件放在哪里?

use*_*ser 8

在我看来,bin比严格的“二进制”更符合“可执行”的意思。(最后,所有文件都是二进制文件。)甚至在/bin; 中也有相当多的脚本文件。在我的 Debian 系统上,file /bin/* | grep -c 'shell script'说那里有 19 个 shell 脚本。坐在 /usr/bin 中,我还有另外 325 个 shell 脚本。

如果您的脚本可以像编译后的应用程序一样使用,只需将其放在适当的bin目录中,因为人们希望在那里找到它。如果它是一个简单的帮助脚本,最好把它放在一个单独的目录中,只是为了强调它并不是一个真正的应用程序。


jll*_*gre 5

在 Unix 的早期,该/bin目录仅包含已编译的二进制文件。脚本后来出现了。至少从引入#! interpreter约定的第 7 版开始,但可能会晚一些。


Gre*_*ods 4

关于该/bin目录的含义,引用Unix Research V3 快照中的intro(0)手册页源代码,该快照现已在 github 和其他地方提供:

Commands generally reside in directory /bin____ (for
bin___ary programs).
Run Code Online (Sandbox Code Playgroud)

相同的文本出现在1971 年的《Unix 程序员手册》(隐含第一版)的引言中。

据我所知,早期 Unix 中没有作为脚本提供的用户命令,直到 V6 才首次出现两个脚本,此时/usr/bin搜索/bin/usr/bin命令的约定已经非常完善,因此这将是很自然的事情放置它们的地方——从来没有必要将它们与“二进制文件”分开,现在仍然没有。