서버/리눅스

[리눅스] 하드링크, 소프트링크(심볼릭링크)

SungHoon, Park 2016. 5. 11. 00:53

소프트링크(심볼릭링크, symbolic link)

1. ln -s 명령을 통해서 소프트링크(이하 심볼릭링크)를 생성한다.

예제) ln -s original.txt soft.txt


심볼릭링크는 바로가기와 동일하다고 할 수 있다. 원본인 original.txt가 삭제가 된다면 심볼릭링크는 깨지게 되고 당연히 original.txt에 접근할 수 없다. 반대로 soft.txt를 지우더라도 링크만 삭제되는 것이기에 원본에는 영향이 가지 않는다.


2. 생성후 확인하기

예제) ln -ali


790572 -rw-rw-r--  2 centos centos   12 2016-05-11 00:44 original.txt

790560 lrwxrwxrwx  1 centos centos   12 2016-05-11 00:55 soft.txt -> original.txt


하드링크(hard link)

1. ln 명령을 통해서 하드링크를 생성한다.

예제) ln original.txt hard.txt


물리적인 데이터 위치 정보를 나타내주는 inode값이 같은 링크방식이다.

쉽게 말하면 파일에 또다른 이름이 있다고 생각하면 이해하기 편하다.

원본인 original.txt 파일을 삭제하더라도 hard.txt라는 다른 이름이 계속 존재하기 때문에 파일은 계속 유지될 수 있다.


2. 생성후 확인하기

예제) ln -ali


790572 -rw-rw-r--  2 centos centos   12 2016-05-11 00:44 hard.txt

790572 -rw-rw-r--  2 centos centos   12 2016-05-11 00:44 original.txt


i옵션을 붙여주면 inode 정보가 추가로 출력된다.


※ inode란?

우리는 탐색기 등을 통해서 트리구조로 파일을 쉽게 확인하고 볼 수 있다. 이것을 파일테이블이라고 한다.

이 파일테이블의 파일정보에는 물리적 저장공간을 가리키는 위치정보가 포함되는데 이것이 바로 inode값이다. inode값은 별도의 inode 테이블에 존재한다.


사용자 파일 테이블(a.txt) -> 파일 테이블(a.txt=100) -> inode 테이블(100=xxx) -> 하드디스크(xxx)


[참고자료]

http://blog.naver.com/pk920207/110147243183

http://mycute7.blog.me/220521823025