snoop Asked: 2016-03-24 02:02:14 +0800 CST2016-03-24 02:02:14 +0800 CST 2016-03-24 02:02:14 +0800 CST 为什么有 2 个目录具有相同的内容? 772 cd /proc/$$/root/bin cd /bin 在两个目录上运行ls命令后,我发现两个目录的内容相同(只是命令列表)。 在两个目录中具有相同的命令列表是否有任何具体原因? command-line 2 个回答 Voted Best Answer EnzoR 2016-03-24T02:20:08+08:002016-03-24T02:20:08+08:00 /proc 是一个“虚拟”文件系统,暴露了一些内核和进程相关的细节。 $$是一个shell 变量,给出了运行它的 shell 的 PID。 /proc/$$/root是指向当前 shell 所看到的根目录的符号链接。如果您正在chrooting ,这可能会改变。 简而言之,两者看起来相同,因为它们是同一个目录。如果您执行ls -ld /proc/$$/root,您将看到它是指向 的符号链接/,因此/proc/$$/root/bin和/bin是同一个目录。 David Foerster 2016-03-24T14:59:22+08:002016-03-24T14:59:22+08:00 那是因为它们实际上是相同的目录¹: $ test /proc/$$/root/bin -ef /bin; echo $? 0 (-ef测试检查两个路径是否引用同一个文件对象。) /proc/$$/root和也是如此/,因为 $ readlink /proc/$$/root / ¹ 除非您所处的chroot环境可能指向/proc/$$/root不同的目录。
/proc
是一个“虚拟”文件系统,暴露了一些内核和进程相关的细节。$$
是一个shell 变量,给出了运行它的 shell 的 PID。/proc/$$/root
是指向当前 shell 所看到的根目录的符号链接。如果您正在chrooting ,这可能会改变。简而言之,两者看起来相同,因为它们是同一个目录。如果您执行
ls -ld /proc/$$/root
,您将看到它是指向 的符号链接/
,因此/proc/$$/root/bin
和/bin
是同一个目录。那是因为它们实际上是相同的目录¹:
(
-ef
测试检查两个路径是否引用同一个文件对象。)/proc/$$/root
和也是如此/
,因为¹ 除非您所处的
chroot
环境可能指向/proc/$$/root
不同的目录。