본문 바로가기
네트워크프로그래밍

[Linux]하드링크(Hard Link) vs 심볼릭링크(Symbolic Link)

by 코드덕후 2022. 8. 7.
728x90

목차

1. 링크
2. 하드링크 와 심볼릭 링크
3. 링크생성

 

Linux command

ln

 

1. 링크

- 파일의 이름(헤더)정보만 다르고 내용물은 동일한 파일입니다.

- 특정 파일이나 디렉토리를 링크 걸어 사용할 수 있습니다.

2. 하드링크 와 심볼릭 링크

- 하드링크(Hard Link) : I-node의 값이 같음. 메모리 자체가 생성되어서 새로운 객체가 만들어 지기 때문에 원본이 사라져도 사용이 가능합니다.

 

- 심볼릭링크(Symbolic Link) : I-node의 값이 다름. 단순 참조만 하는 형태이기 때문에 원본이 사라지면 사용이 불가능합니다.

 

하드링크와 심볼릭 링크는 이 차이만 기억하면 됩니다.

 

3. 링크생성

ln [옵션][원본파일명1][링크파일명2] (기본생성은 하드링크)
ln -s [원본파일명1][링크파일명2] (심볼릭 링크생성)

 

.하드링크 심볼릭 링크생성

- 하드링크와 심볼릭 링크를 생성해서 ls -i 옵션을 사용하여 i-node의 번호를 확인 할 수 있습니다.

하드링크 심볼릭 링크 생성

test.txt 의 i-node 번호 655700

hardlink의 i-node 번호 655700

symbolic의 i-node 번호 655701

이렇게 생성 된걸 확인 할 수있습니다.

 

.원본파일 변경시 파일 변화

링크된 파일의 내용확인

 

원본파일 내용 변경시 변화

위의 내용에서 원본파일만 변경했을 때 링크 파일들의 참조하는 내용도 변화하는 걸 알수 있습니다. 즉 원본이 바뀌면 링크파일들의 내용도 자동으로 바뀌게 됩니다.

 

.원본파일 삭제시 파일 변화

원본파일 삭제시 링크파일들의 변화

 

원본파일이 삭제되면 하드링크는 그대로 참조가 가능하지만 심볼릭 링크는 깨져서 빨간색으로 표시된 것을 알수 있습니다. 즉 하드링크는 완전히 새로운 파일로서 번호가 같은 파일이 생성된 것이고, 심볼릭 링크는 단순히 참조만 하고 있었다는 것을 알 수 있습니다.

 

링크파일은 용도에 맞게  사용하시면 되겠습니다.

 

참조 할 다른 명령어

 

1. 리눅스 기본 명령어 ls

2. 리눅스 기본 명령어 pwd

3. 리눅스 기본 명령어 cd

4. 리눅스 디렉토리 권환 확인 및 변경 chmod,chown,chgrp

5. 리눅스 기본 명령어 mkdir

6. 리눅스 기본 명령어 디렉토리 삭제 rmdir

7. 리눅스 기본 명령어 파일생성,삭제,보기,병합 cat

8. 리눅스 기본 명령어 파일생성 및 시간변경 touch9

9. 리눅스 기본 명령어 파일 복사 및 이동 cp

10. 리눅스 기본 명령어 파일 삭제 rm

 

728x90
반응형
LIST

댓글