我知道这是硬链接的一个条件,它们无法跨越文件系统.这适用于NFS挂载吗?给定以下目录结构,我是否能够在目录A中创建指向目录B中的文件的硬链接?
/root
/A
/B <-NFS mount
Run Code Online (Sandbox Code Playgroud)
例如,我想跑 ln /root/B/file.txt /root/A/linkedfile.txt
好吧,因为它/B是一个单独的文件系统(一个挂载的NFS文件系统),你不能在它之间建立硬链接/A,因为它们不在同一个文件系统上.
这是因为硬链接不会使数据的副本只放置指向该数据的指针的副本,因此它们必须位于相同的"地址空间"中.
首先要确切了解硬链接是什么,这是一个好主意.
通常在类似unix的系统上,目录中的文件名指向inode编号 - 实质上是文件的编号."硬链接"只是创建具有相同inode编号的另一个文件名.现在,您必须使用指向相同编号文件的不同名称.
但请注意,这两个名字之间并没有真正的直接联系.关系是Name1和Name2都将它们的inode编号设置为12756 - 但是没有什么可以阻止并且说"我手中的这个东西是两个文件之间的链接".它们只是两个共享id号的数据库条目.对于共享id号的文件名,你可以进行查询(因为你正在浏览系统中的每个文件条目,因此很慢),但就是这样.
因此,创建"两个文件系统之间的硬链接"并不意味着什么 - 因为两个文件系统具有不同的编号方案(系统1上的inode 1234,系统2上的1234,指向完全不同的文件),并且你唯一的事情必须存储的是名称+ inodeNumber,没有什么可做的.
| 归档时间: |
|
| 查看次数: |
15154 次 |
| 最近记录: |