硬链接 inode 行为

硬链接 inode 行为
bash: ~/Desktop $ mkdir DIR  
bash: ~/Desktop $ cd DIR  
bash: ~/Desktop/DIR $ echo 000_111 > fileA  
bash: ~/Desktop/DIR $ ln fileA fileB  
bash: ~/Desktop/DIR $ cat fileA fileB  
000_111  
000_111  
bash: ~/Desktop/DIR $ ls -i  
6298182 fileA  6298182 fileB  
bash: ~/Desktop/DIR $ ls -il  
total 8  
6298182 -rw-r--r-- 2 da7id da7id 8 ott 19 16:58 fileA  
6298182 -rw-r--r-- 2 da7id da7id 8 ott 19 16:58 fileB  
bash: ~/Desktop/DIR $ mv fileB /$HOME/Desktop/fileB  
bash: ~/Desktop/DIR $ ls -il  
total 4  
6298182 -rw-r--r-- 2 da7id da7id 8 ott 19 16:58 fileA  
bash: ~/Desktop/DIR $ ls -il '/home/da7id/Desktop/fileB'   
6298182 -rw-r--r-- 2 da7id da7id 8 ott 19 16:58 /home/da7id/Desktop/fileB  

fileAfileB即使我fileB从移动/$HOME/Desktop/DIR/fileB到 ,仍然具有相同的 inode/$HOME/Desktop/fileB

在这种情况下,硬链接的确切行为是什么?

答案1

您的fileAfileB只是指向同一个 inode 的两个目录条目,因此指向同一个文件。重命名文件或将其移动到同一文件系统中不会更改此关系。

一个文件可以有任意数量的名称,但只能有一个 inode 号,并且同一文件系统中的其他文件不能有相同的 inode 号。

特殊情况:一个文件只有当它保持开放时,名称才会存在。

相关内容