既然几乎所有现代主流 Linux 和 Unix 都具有 的/bin
符号链接/usr/bin
,为什么默认情况下PATH
contains/usr/bin
后面跟着/bin
?如果我PATH
通过移除来清理我的东西,会破坏任何东西吗/bin
?我认为它默认存在是出于某种兼容性原因,但我想不出是什么。
答案1
正如你提到的。 /bin 文件夹是大多数系统上整个系统用户可执行文件所在的位置。但随着时间的推移,/垃圾桶,/sbin和类似的,已移至/usr子文件夹。现在大多数系统都会创建链接 /bin -> /usr/bin 这是以防万一,如果有人可能运行较旧的 shell 版本、用户脚本或程序中的简单硬编码路径 - 所有这些都期望能够正常工作,即使它们已经 10 年或更长时间没有更新了:)
至于您是否应该将其从 $PATH 中删除的问题:如果您使用的是普通用户帐户(而不是 fe root)并且您是当然你不会运行任何需要的程序/垃圾桶- 你能行的。您面临的主要问题是,如果您保留它,真的会打扰您吗?
答案2
在远古时代,当大的磁盘有几个 MiB,Unix 系统有自己的可执行文件/库,/bin
等等/lib
。用户请求额外的设施,这些设施不需要启动机器,因此被放置在磁盘上供用户使用,也许是一种便宜、缓慢但较大的设施/usr
。后来磁盘达到了 GiB 范围,机器变得个人化(我自己的计算机,而不是大学/部门的计算机)开始只有一个磁盘,它被细分(分区)为一个小的/
和一个(较大的)/usr
;如果任何意外损坏了磁盘(或其上的数据),则更有可能/
幸存下来(或包含其内容的小型“救援”磁盘)并可用于修复系统。如今,区分“系统必备”和“最好有”二进制文件已经没有什么意义了(现在您可以将大多数 Linux 发行版的完整安装存储在随身碟上)。如果今天设计文件系统布局,可能/usr
根本就没有。