💡 이 문서는 한빛미디어 - 이것이 우분투/리눅스다를 기반으로 공부하면서 체화를 위해 정리하는 글입니다. 💡
리눅스 파일의 크게 링크는 하드 링크 (Hard Link)
와 심볼릭 링크 (Symbolic Link or Soft Link)
2가지가 있음.
리눅스 / 유닉스 파일 시스템에서 사용하는 자료 구조
모든 파일이나 디렉터리는 각자 1개씩의 inode
가 있음
각 inode
에는 해당 파일의 소유권, 허가권, 파일 종류 등의 정보와 해당 파일의 실제 데이터 위치(주소)도 있음.
이러한 inode가 모여 있는 공간이 inode 블럭
이며, 일반적으로 전체 디스크 공간의 1% 정도 차지
Data 블럭
은 실제 데이터가 저장된 디스크 공간으로, 전체 디스크의 대부분을 차지stat
명령어를 통해 자세한 내용 확인 가능
Windows의 바로가기
와 같은 개념 (원본 파일의 경로를 가리키는 링크)
새로운 inode2
를 만들고, 데이터는 원본 파일과 연결되는 효과를 가짐
inode
는 다르게 유지됨링크 파일을 삭제해도 원본 파일은 삭제되지 않음
원본 파일을 지우면 링크 파일은 원본 파일을 찾을 수 없음
장점은 전혀 다른 파일이라도 원본 파일과 이름이 같다면 계속 사용할 수 있음
ln -s {원본 파일} {심볼릭 링크 파일}
파일 유형 : l
(link)
원본 파일 origin
과 다른 inode
고유 번호를 가짐
→
: 원본 파일을 지정한다는 의미
원본 파일과 동일한 inode
를 가짐
inode
를 갖고 있는 링크 파일은 사용이 가능하고 그 정보를 가지고 있음파일을 수정하면 원본 파일과 링크 파일 모두 수정됨 → i-node
가 같기 때문
Symbolic과의 차이
Symbolic은 원본 파일과 연결돼서 (원본 파일의 포인터) 데이터 추가 (원본 파일에 의존적)
Hard link는 원본 파일의 개념이 없어지고 같은 데이터를 가지는 파일의 이름이 두 개라고 볼 수 있음.
같은 inode
를 가리키는 파일이기 때문에 이름만 다를 뿐 같은 파일
디렉토리에 대해 링크를 만들 수 없음
원본 파일을 이동시켜도 링크를 사용 가능
하드링크와 심볼릭 링크와의 중요한 차이점은 같은 inode를 바라보느냐의 차이