심볼릭 링크 (소프트 링크)

파일 및 디렉토리에 대한 링크를 만들 수 있으며 다른 파티션에서 원본과 다른 inode 번호로 링크 (바로 가기)를 만들 수 있습니다.
실제 복사본이 삭제되면 링크가 작동하지 않습니다.

심볼릭 링크는 실제로 다른 경로 (파일 이름)를 가리킵니다.

심볼릭 링크를 통해 파일에 Access할 때마다 파일 이름을 확인합니다.

파일을 이동하면 심볼릭 링크가 따르지 않지만, 이름을 유지하면서 파일을 다른 파일로 바꾸면 심볼릭 링크가 새 파일을 가리킵니다.

심볼릭 링크는 파일 시스템으로 확장 될 수 있고 심볼릭 링크를 사용하면 실제 파일과 심볼릭 링크를 명확하게 구분할 수 있습니다.

 

- 사용 이유
1. 명령어의 호환성을 유지 
ex) 운영체제별로 같은 의미지만 다른 단어의 명령어를 심볼릭 링크로 통일 가능

2. 경로가 복잡한 디렉토리에 쉽게 들어가기 위해 사용
ex) ln -s /usr/share/man/man1 man1
-> pwd -L (심볼릭 링크의 파일 경로: /root/man1)
-> pwd -P (원본파일의 경로: /usr/share/man/man1)

3. 설정파일의 확장자가 틀린 것을 확장자 하나로 통일 가능
ex) /etc/php.conf -> /etc/php.ini
       /etc/mysql.conf -> /etc/my.cnf

 

하드 링크

하드 링크는 파일 전용입니다. 

다른 inode 번호를 가진 다른 파티션의 파일에 링크 할 수 없습니다.
실제 사본이 삭제되면 실제 사본이 액세스 한 기본 데이터에 Access하므로 링크가 작동합니다.

하드 링크는 파일에 대한 포인터가 아니며 동일한 inode를 가리키는 디렉토리 항목 (파일)입니다.

다른 파일의 이름을 변경하더라도 하드 링크는 여전히 파일을 가리킵니다.

다른 파일을 새 버전으로 바꾸면 (복사) 하드 링크가 새 파일을 가리 키지 않습니다.

동일한 파일 시스템 내에서만 하드 링크를 가질 수 있습니다.

하드 링크를 사용하면 원본 파일과 링크에 대한 개념이 없으며 모두 동일합니다.


심볼릭 링크는 내용이 아닌 이름을 가리키므로 현재 test2를 test2-new로 변경하였기 때문에

test2-soft는 test2에 대한 파일의 내용을 찾을 수 없습니다. test2가 삭제되면 test2-soft는 존재하지 않는 파일에 대한 링크일 뿐입니다.

반대로 하드 링크는 test1이 삭제 되더라도 test1-hard는 여전히 내용을 보유합니다. 

 

inode

아이노드(inode)는 전통적인 유닉스 계통 파일 시스템에서 사용하는 자료구조로 정규 파일, 디렉터리 등 파일 시스템에 관한 정보를 가집니다.
파일들은 각자 1개의 아이노드를 가지고 있으며, 아이노드는 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 형태, 아이노드 숫자(inode number, i-number, 아이넘버) 등 해당 파일에 관한 정보를 지닙니다. 파일시스템 내의 파일들은 고유한 아이노드 숫자를 통해 식별 가능합니다.

일반적으로 파일 시스템을 생성할 때 전체 공간의 약 1퍼센트를 아이노드를 위해 할당합니다.

아이노드를 위한 공간이 한정되어 있는 만큼 파일시스템이 가질 수 있는 파일의 최대 개수도 한정되어 있지만,

대부분의 경우 사용자가 느끼기에 거의 무한 개에 가까운 파일을 생성하고 관리할 수 있습니다.