Linux 下为什么 /bin 与 /usr/bin 并存

相信好多人学习 Linux 的时候都认为 usr 是 user 的简写,但是好多资料都会告诉我们 usr 是 Unix System Resource 的缩写(好几种不同说法),并不是 user 的简写。
然后 /bin & /usr/bin 以及 /sbin & /usr/sbin 的设计也是有一番道理(核心工具 & 普通工具)。

今天看到一篇技术博客告诉我,这一切没有这么多优雅设计,都是早期 Unix 开发时一块 1.5MB 磁盘容量不够,祖师爷们设计的一个临时补救措施,没想到一直沿用至今,之后其他所有的解释都是入关之后的大儒辩经。

1971 年 Ken Thompson 与 Dennis Ritchie 在 PDP-11 上写 Unix 时,第一块 1.5MB 的 RK05 根盘写满后的临时补漏:溢出命令顺手塞进原本挂 /usr(存用户文件,相当于早期 home 目录)的第二块盘,建了 /usr/bin、/usr/lib,并把 $PATH 改成 /bin:/usr/bin。

Fedora、Debian、Ubuntu、Arch 等近年推行 usrmerge,将 /bin、/sbin、/lib 软链到 /usr 下对应目录,承认两者本该合一。

-> % find / -maxdepth 1 -type l -ls
       13      0 lrwxrwxrwx   1 root     root            7 4月 22  2024 /lib -> usr/lib
       15      0 lrwxrwxrwx   1 root     root            8 4月 22  2024 /sbin -> usr/sbin
       12      0 lrwxrwxrwx   1 root     root            7 4月 22  2024 /bin -> usr/bin
       14      0 lrwxrwxrwx   1 root     root            9 4月 22  2024 /lib64 -> usr/lib64
如果你有魔法,你可以看到一个评论框~