본문 바로가기
장인으로의 여정

[linux] 파일링크 ln (Hard Link, Soft Link)

by 유기농프로그래밍 2016. 3. 12.
반응형

inode


전산학에서 아이노드(inode)는 UFS와 같은 전통적인 유닉스 계통 파일 시스템에서 사용하는 자료구조이다


파일들은 각자 1개의 아이노드를 가지고 있으며, 아이노드는 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 형태, 아이노드 숫자(inode number, i-number, 아이넘버) 등 해당 파일에 관한 정보를 가지고 있다. 파일시스템 내의 파일들은 고유한 아이노드 숫자를 통해 식별 가능하다.


[참고]

https://ko.wikipedia.org/wiki/%EC%95%84%EC%9D%B4%EB%85%B8%EB%93%9C


모든 파일에는 inode가 있다.

그렇다면 어떻게 확인할까?


ls로 파일을 확인할 때 i옵션을 주면 된다.




하드링크(Hard Link)


파일을 복사하는 건 아니지만, 같은 파일을 바라보게 하는 것이다.


즉, inode가 똑같은 다른 이름의 파일을 생성하는 것이다.


원본파일을 지워도 hardlink로 된 파일은 그대로이다. 왜냐하면 같은 inode를 가지고 있기 때문이다.


copy와 다른 점은, 원본이든, 하드링크파일이든 수정되면 두 파일 모두가 바뀌지만, copy된 파일은 다른 inode로 생성되기 때문에 의존성이 전혀없다.


생성방법 : ln [원본] [하드링크이름]



소프트링크(Soft Link)


파일을 바라보게 하는 것이다.


inode가 다르며, 원본이 지워지면 무용지물이 되어버린다.


하드링크와 차이점은 권한 맨 앞에 l이 붙는다는 점이다.


생성방법 : ln -s [원본] [소프트링크이름]




다른 옵션들도 있으니 확인해보자.


[옵션]

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

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

-d : 디렉토리에 대한 하드링크파일생성을 가능하게 함. 단 root 권한으로 수행하더라도 시스템의 권한제한으로 인하여 실패할 가능성이 높음. (-F 와 --directory 는 -d 와 동일함)

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

-i : 대상파일이 존재할 경우에 대상파일을 지울것인가를 확인요청 (--interactive 와 동일)

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

-S : 백업파일 생성시에 원하는 접미사(suffix)를 지정할 수 있음

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



반응형

'장인으로의 여정' 카테고리의 다른 글

[Build System] CMake  (0) 2016.03.31
[linux] jdk 설치  (0) 2016.03.12
[gdb] GNU 디버거  (0) 2016.03.09

댓글