04. file Directory & Permission (파일과 디렉터리의 소유와 허가권) 에서 다룬 내용이지만 내용이 나눠져 있어서 찾기가 어려워서 링크파일에 대해서만 따로 포스팅을 하려고 합니다.


파일의 링크(link)에는 하드링크(hard link)와 심볼릭 링크(symbolic link 또는 soft link 라고도 한다) 두 가지가 있습니다. 

하드 링크(Hard Link)는 windows에서 바로가기 아이콘의 개념과 비슷합니다. 


하드링크를 생성하면 "하드링크파일"만 하나 생성되며 같은 inode1을 사용합니다.


# ln 링크대상파일이름 링크파일이름


심볼릭 링크(Symbolic Link)를 생성하면 새로운 inode2를 만들고, 데이터는 원본파일을 연결하는 효과를 가진다. 


# ln -s 링크대상파일이름 링크파일이름


덧붙여 inode란 실제 데이터 파일의 정보를 나타내는 inode 구역에 저장되는 데이터인데 그냥 하나의 객체를 뜻한다고 생각하면 쉽다. 


inode1=inode1 but inode1≠inode2


다시말해 하드링크를 생성한 파일은 원본파일과 완전히 동일한 inode 정보를 가지게 되어 이 말인 즉슨 원본파일을 지워도 hard link 파일은 원본 파일의 데이터를 그대로 갖고 있기 때문에 실행이 된다는 말씀이다. 


하지만 바로가기라는 특성상 symbolic 링크가 더욱 일반적으로 쓰인다. (hard link는 무쓸모인가...)


# ls -il  or # ls -li    


파일리스트 맨 앞에 파일 색인번호를 표시한다. 이 명령어로 하드링크(hardlink) 파일과 소프트링크(softlink) 파일의 색인번호를 원본파일과 비교할 수 있다.


링크파일 생성에 [옵션]을 정리하면 다음과 같습니다.


# ln [옵션] 원본파일 대상파일(혹은 디렉터리)


--backup[=CONTROL] : 대상파일이 존재할 경우 백업파일을 만든 후 링크파일을 생성

-b : 링크파일 생성 시에 대상파일이 존재하면 백업파일을 만든 후 링크파일을 생성

-d : 디렉토리에 대한 하드링크생성. root 권한으로 수행하더라도 시스템의 권한제한으로 실패할 수도 있음. (-F / --directory = -d)

-f : 대상파일이 존재할 경우에 대상파일을 지우고 링크파일을 생성

-i : 대상파일이 존재할 경우에 대상파일을 지울지 확인 (--interactive)

-s : 심볼릭 링크파일 생성

-S : 백업파일을 생성할 때 원하는 접미사를 정할 수 있음

-t, --target-directory=DIRECTORY : 링크파일을 생성할 디렉토리를 지정함


링크 파일을 만들어서 테스트 해보시면서 연습하시길 바랍니다. 

+ Recent posts