하드 링크 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를 가리키는 두 개의 디렉토리 항목이므로 동일한 파일을 가리킵니다. 파일 이름을 바꾸거나 파일을 동일한 파일 시스템으로 이동해도 이 관계는 변경되지 않습니다.

파일 이름은 여러 개 있을 수 있지만 inode 번호는 하나만 가질 수 있으며 동일한 파일 시스템의 다른 파일은 동일한 inode 번호를 가질 수 없습니다.

특별한 경우: 파일이름은 열려 있는 동안에만 존재합니다.

관련 정보