[Linux]하드링크(Hard Link) vs 심볼릭링크(Symbolic Link)
목차
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
이렇게 생성 된걸 확인 할 수있습니다.
.원본파일 변경시 파일 변화
위의 내용에서 원본파일만 변경했을 때 링크 파일들의 참조하는 내용도 변화하는 걸 알수 있습니다. 즉 원본이 바뀌면 링크파일들의 내용도 자동으로 바뀌게 됩니다.
.원본파일 삭제시 파일 변화
원본파일이 삭제되면 하드링크는 그대로 참조가 가능하지만 심볼릭 링크는 깨져서 빨간색으로 표시된 것을 알수 있습니다. 즉 하드링크는 완전히 새로운 파일로서 번호가 같은 파일이 생성된 것이고, 심볼릭 링크는 단순히 참조만 하고 있었다는 것을 알 수 있습니다.
링크파일은 용도에 맞게 사용하시면 되겠습니다.
참조 할 다른 명령어
4. 리눅스 디렉토리 권환 확인 및 변경 chmod,chown,chgrp
7. 리눅스 기본 명령어 파일생성,삭제,보기,병합 cat
8. 리눅스 기본 명령어 파일생성 및 시간변경 touch9