答案1
我不知道为什么该屏幕截图包含箭头。这些不应该相关。(事实证明它们是相关的……请参阅底部的评论)。
但你的问题的答案是......
/bin
包含核心操作系统的可执行文件。这些文件在/usr
挂载之前需要可访问。(例如,mount
命令在 中/bin/mount
)。/usr/bin
包含可执行文件不是核心操作系统的一部分。这些被视为“系统范围的二进制文件”。
/sbin
并且/user/sbin
是相同的设置。只有这些目录中的实用程序通常需要 root 权限。's' 表示超级用户(又称 root),但 USED 表示独立(如无依赖关系的静态链接)。
既然我们已经开始着手解决这个问题,为什么不解决呢/usr/local/bin
?local
树的这一部分用于特定于主机的内容(即并非所有操作系统实例都通用的内容)。通常,您在软件包系统之外安装的程序会将二进制文件放在此处。
/tmp
用于临时数据,需要快速清除。通常至少每 10 天清除一次。许多配置文件也会在每次重启时清除这些数据。/var/tmp
通常用于存储更持久的数据(但仍会被“丢弃”)。通常每 30 天左右清除一次。通常不会在重启时清除。
请记住。Linux 是一个免费的操作系统,任何人都可以为其做出贡献和编写代码,因此,这些只是指导方针,而不是规则。Linux 仍然(并且可能仍然是)“狂野西部”。
请参阅 UsrMerge 上的其他帖子(特别是有关该图表的全部内容)。
@user1686 向我们提供了以下信息:(谢谢!)箭头表示符号链接。我认为 SunOS 4 可能是第一个使用符号链接/bin
的操作系统/usr/bin
- 它只有“mount”命令/sbin
(“s”过去表示“独立”或“静态链接”;即不依赖于 /lib;但大家都忘了这一点)。
答案2
答案3
曾经有一段时间,存储非常昂贵。当时,/usr
NFS 共享位于“巨大”的文件服务器上。正如答案中提到的,它/bin
包含/sbin
启动所需的文件,直到可以进行 NFS 挂载(例如,mount
在挂载某些东西之前,命令需要在那里)。
实际上,在 Android 中,有时您仍可以在系统中看到这种拆分,其中根文件系统位于 ROM 上并通过覆盖安装。在那里,可以将其他软件放在下面/usr
,而无需更改核心系统。
现代桌面 Linux 发行版不再需要拆分,而是将所有内容合并到/usr
。如上所述,请参阅UsrMerge
。
答案4
回答你的问题:
/bin
和之间的关系/usr/bin
通常(如您的情况)是符号链接。文件夹上的箭头表示这是您系统上的/bin
符号链接。/usr/bin
用户可以通过运行以下命令在自己的系统上进行检查ls -l /bin
:
$ ls -l /bin lrwxrwxrwx 1 root root 7 2022 年 8 月 2 日/垃圾桶->usr/bin
箭头再次表明 /bin 是指向 /usr/bin 的符号链接。