/bin 和 /usr/bin 有什么关系?

/bin 和 /usr/bin 有什么关系?

在此处输入图片描述

我得到了 Linux 目录的快照:您会看到有箭头指向另一个目录。

/bin -> /usr/bin /sbin -> /usr/sbin /usr/tmp -> /var/tmp

答案1

我不知道为什么该屏幕截图包含箭头。这些不应该相关。(事实证明它们是相关的……请参阅底部的评论)。

但你的问题的答案是......

  • /bin包含核心操作系统的可执行文件。这些文件在/usr挂载之前需要可访问。(例如,mount命令在 中/bin/mount)。
  • /usr/bin包含可执行文件不是核心操作系统的一部分。这些被视为“系统范围的二进制文件”。

/sbin并且/user/sbin是相同的设置。只有这些目录中的实用程序通常需要 root 权限。's' 表示超级用户(又称 root),但 USED 表示独立(如无依赖关系的静态链接)。

既然我们已经开始着手解决这个问题,为什么不解决呢/usr/local/binlocal树的这一部分用于特定于主机的内容(即并非所有操作系统实例都通用的内容)。通常,您在软件包系统之外安装的程序会将二进制文件放在此处。

  • /tmp用于临时数据,需要快速清除。通常至少每 10 天清除一次。许多配置文件也会在每次重启时清除这些数据。

  • /var/tmp通常用于存储更持久的数据(但仍会被“丢弃”)。通常每 30 天左右清除一次。通常不会在重启时清除。

请记住。Linux 是一个免费的操作系统,任何人都可以为其做出贡献和编写代码,因此,这些只是指导方针,而不是规则。Linux 仍然(并且可能仍然是)“狂野西部”。

请参阅 UsrMerge 上的其他帖子(特别是有关该图表的全部内容)。

@user1686 向我们提供了以下信息:(谢谢!)箭头表示符号链接。我认为 SunOS 4 可能是第一个使用符号链接/bin的操作系统/usr/bin- 它只有“mount”命令/sbin(“s”过去表示“独立”或“静态链接”;即不依赖于 /lib;但大家都忘了这一点)。

答案2

您发布的图片似乎是所谓的 UsrMerge 的可视化,详细描述了这里. 很好地快速描述了将这些符号链接在一起的好处。

这意味着一种相对安全的简化 Linux 文件结构的方法。不同的发行版对这些目录的处理方式不同,因此将它们符号链接在一起可以解决各种应用程序中的许多兼容性问题。

此链接提供了为什么首先以这种方式设置的背景。长话短说,它是 70 年代解决硬件限制所必需的退化器官。

答案3

曾经有一段时间,存储非常昂贵。当时,/usrNFS 共享位于“巨大”的文件服务器上。正如答案中提到的,它/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 的符号链接。

相关内容