1、hard link 跟 symbolic link 最大不同之处是 hard link 直接指到 original file 的 inode,所以你就把hard link 想成就是真正的 file,所以 hard link 就是用个用不同的名字。
2、A 和 B 其实都是指到同一个inode上面。
3、可以从inode的number来证明:
4、(1) 先create一个file叫 /tmp/A
5、$ echo "123" > /tmp/A
6、(2) 用 ls -il 来看 inode 的 value (33 是 inode 的值):
7、$ ls -li /tmp/A
8、33 -rw-r--r-- 1 user1 grp1 4 Aug 10 12:20 /tmp/A
9、(3)造一个hard link 叫 /tmp/B:
10、$ ln /tmp/A /tmp/B
11、(4) 看他们的inode的值:(应该都是33)
12、$ ls -li /tmp/A /tmp/B
13、33 -rw-r--r-- 2 user1 grp1 4 Aug 10 12:20 /tmp/A
14、33 -rw-r--r-- 2 user1 grp1 4 Aug 10 12:20 /tmp/B
15、(5)用 find 来找所有inode等於33的档案:(应该找到 A 和 B):
16、$ find /tmp -inum 33 2>/dev/null
17、/tmp/B
18、/tmp/A
19、(6)delete file /tmp/A:
20、$ rm -f /tmp/A
21、(7)再用 find 来找所有inode等於33的档案:(应该只找到 B):
22、$ find /tmp -inum 33 2>/dev/null
23、/tmp/B
【#关于 Linux 的 hard link#】到此分享完毕,希望对大家有所帮助。