我使用一个计算集群,我认为这是一个相当复杂的文件系统设置,所以我想了解它。
有一个目录foobar
,我可以cd
进入它
$ cd /a/b/foobar
如果我进入目录并运行
$ readlink -f .
我得到了一条路径/c/d/foobar
,也是/a/b
某种符号链接。如果我这样做
$ cd /c/d/foobar
$ readlink -f .
我明白/c/d/foobar
这是一条规范路径。
现在还有另一条路/e/f/foobar
,如果我跑
$ cd /e/f/foobar
$ readlink -f .
我明白/e/f/foobar
这也是一条规范路径。
在 的所有三个实例中cd
,foobar
目录始终具有完全相同的内容,并且该foobar
目录是我创建的,因此我知道它包含什么。同一目录是否可能存在两个不同的规范路径?或者更有可能的是/c/d
和/e/f
是在不同驱动器上彼此重复的?
答案1
绑定安装可以创建第二条规范路径。
mount -o bind /a/b /c/d
您仍然可以使用该stat
命令(或系统调用)通过比较两个项目的设备号和索引节点号来验证它们是否是同一项目。