相信好多人学习 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