OS/Linux2012. 8. 17. 16:21

Symbolic/Hard link



Link


Unix와 Linux 파일 시스템에서 실제 파일이나 디렉토리 혹은 다른 링크를 가리키도록 연결하는 것을 의미합니다.

Windows의 바로가기나 단축아이콘을 생각할 수도 있지만 Link는 파일 시스템 차원에서 제공된다는 근본적인 차이가 있습니다.

링크로 접근하거나 원본으로 접근하여 파일의 내용을 수정하였다면 원본과 링크된 파일이 모두 수정됩니다.

Link에는 Symbolic link와 Hard link 두 가지가 있습니다.

일반적으로 링크라 함은 Symbolic link를 말합니다.


i-node에 대한 개념을 모르시면 다음 글을 읽고 오세요.

 -> http://slimv.tistory.com/entry/inode


Symbolic link (Soft link)


원본 파일의 i-node를 참조합니다.

Windows의 바로가기 기능과 유사합니다.

주로 디렉토리를 링크할 때 사용합니다.

파일의 불필요한 반복적 복사를 방지하여 파일 시스템을 유연하게 활용합니다.

원본 파일이 삭제되면 실제 데이터 블럭을 참조하던 i-node도 삭제되어 Symbolic link된 파일은 사용할 수 없게 됩니다.


target에 대해 Symbolic link로 copied를 생성한 상태입니다.


Hard link


원본 파일 자체를 참조합니다. 원본과 같은 i-node를 가지고 있습니다.

주로 일반 파일을 링크할 때 사용합니다.

원본 파일을 복사한 다음 이의 사본을 생성합니다.

원본이 삭제되어도 원본과 동일한 내용의 파일을 가지고 있습니다.

자원을 공유하면서도 데이터를 안전하게 관리하고자 할 때 주로 사용합니다.


target에 대해 Hard link로 copied를 생성한 상태입니다.

i-node가 177427로 동일합니다.


명령어


ln [option] [source] [destination]


'OS > Linux' 카테고리의 다른 글

setuid & setgid & sticky bit  (0) 2012.08.20
LD_PRELOAD  (0) 2012.08.18
i-node  (0) 2012.08.17
Posted by slimV