copy, hardlink, symboliclink 비교

최병훈·2024년 9월 4일
post-thumbnail

1. origin.txt 을 생성하고 내용("Hello")을 입력

vi origin.txt

2. copy.txt, hardlink.txt, symboliclink.txt 생성

  • origin.txt 파일의 내용을 복사하여 copy.txt 생성
cp origin.txt copy.txt
  • origin.txt 파일에 대한 hard link 파일인 hardlink.txt 생성
ln origin.txt hardlink.txt
  • origin.txt 파일에 대한 symbolic link 파일인 symboliclink.txt 생성
ln -s origin.txt symboliclink.txt

3. 4개의 파일이 모두 같은 내용을 출력하는지 확인

cat origin.txt
cat copy.txt
cat hardlink.txt
cat symboliclink.txt
  • 모두 같은 내용 "Hello" 를 출력

4. 각 파일의 I-node 번호 확인

ls -i

  • I-node 번호
    527580 : origin.txt
    527580 : hardlink.txt
    525775 : copy.txt
    527664 : symboliclink.txt

hardlink.txt 는 origin.txt 의 hard link 로 생성되었기 때문에,
origin.txt 와 hardlink.txt 의 I-node 번호는 527580 으로 같다.

  • 현재 파일 시스템 상태

5. origin.txt 파일의 내용 변경

vi origin.txt
  • "Hello" -> "Bye" 로 파일의 내용을 변경

6. 4개의 파일의 내용을 각각 출력

cat origin.txt
cat copy.txt
cat hardlink.txt
cat symboliclink.txt


copy.txt 파일의 데이터는 origin.txt 와 독립적으로 존재하기 때문에, origin.txt 데이터 변경에 영향을 받지 않는다.

  • 현재 파일 시스템 상태

7. origin.txt 파일을 삭제

rm origin.txt

8. copy.txt, hardlink.txt, symboliclink.txt 의 내용 출력

cat copy.txt
cat hardlink.txt
cat symboliclink.txt	// 에러 발생

cat symboliclink.txt 의 경우 data block에 origin.txt 에 대한 경로 정보를 저장하고 있는데, origin.txt 파일이 삭제되며 참조할 경로의 파일이 사라져 오류가 발생한다.

  • 현재 파일 시스템 상태

0개의 댓글