ハードリンク 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  

fileAfileBfileB次へ移動しても/$HOME/Desktop/DIR/fileB同じinodeがあります。/$HOME/Desktop/fileB

この場合、ハードリンクの正確な動作は何ですか?

答え1

あなたfileAfileBは同じinodeを指す2つのディレクトリエントリなので、同じファイルを指します。ファイル名を変更したり、ファイルを同じファイルシステムに移動しても、この関係は変わりません。

ファイル名は複数ありますが、inode 番号は 1 つしか持たず、同じファイルシステム上の他のファイルは同じ inode 番号を持つことはできません。

特別な場合:ファイル若い名前は開いている間だけ存在します。

関連情報