Linux/리눅스 시스템 관리

01_02_03_리눅스 파일 시스템 관리_파일 링크

바우네 2022. 2. 14. 08:00
반응형

파일 링크(File link)

  1. 파일 링크 개요
    • 리눅스에는 윈도의 바로가기 기능과 같이 시스템에 이미 존재하는 파일에 대한 포인터를 갖는 파일 링크 기능을 제공한다.
    • 리눅스의 파일 링크는 크게 하드 링크(Hard link)와 심볼릭 링크(Symbolic link)가 있다.
      • 하드 링크는 해당 파일의 아이노드를 가리키고 심볼릭 링크는 해당 파일의 경로를 가리킨다.
      • 하드 링크의 경우 대상 파일이 사라지더라도 해당 파일에 대한 참조가 0이 아니기 때문에 삭제되지 않으므로 링크를 통해 실제 파일에 접근이 가능하다.
      • 심볼릭 링크는 소프트 링크(Soft link)라고도 한다.
      • 심볼릭 링크의 경우 단순히 경로만을 참조하므로 대상 파일이 삭제되면 심볼릭 링크는 존재하지 않는 파일을 가리키게 된다.
    • 스티키 비트를 설정하지 않으면서 디렉터리를 공용으로 사용하고자 한다면 하드 링크를 사용하는 것도 하나의 방법일 수 있다. 하드 링크의 특성상 대상 파일을 삭제하더라도 하드 링크가 동일한 아이노드를 가리킴으로써 실제 대상에 접근할 수 있기 때문이다.
    • 심볼릭 링크는 라이브러리의 업그레이드 시 용이하다. 아래 lib 디렉터리의 'libnetpbm.so.10'을 보면 실제로는 'libnetpbm.so.10.0'을 가리키고 있다. 업데이트가 있어 'libnetpbm.so.10.1'로 바뀐다 하더라도 링크만 바꾸면 되기에 어플리케이션 수정이 불필요하다.
  2. 하드 링크(Hard link)
    • 동일한 파일 시스템 내에서만 하드 링크를 생성할 수 있다.
    • 디렉터리를 링크할 수 없다.
    • 하드 링크는 대상 파일과 동일한 아인노드 번호와 허가권을 가진다.
    • 대상 파일의 허가권을 변경하면 하드 링크의 허가권도 변경된다.
    • 하드 링크는 대상 파일과 동일한 아이노드 번호를 갖기 때문에 대상 파일을 옮기거나 삭제하더라도 대상 파일을 참조할 수 있다.
    • ln 명령어를 통해 하드 링크를 생성할 수 있다. 'ls -lia' 명령어를 사용하여 대상 파일과 하드 링크의 아이노드 값이 '3151177'로 동일한 것을 확인할 수 있다.

심볼릭 링크(Symbolic link)

  • 심볼릭 링크를 생성할 때 원본 파일과 대상 파일이 서로 다른 파일 시스템에 위치하여도 무방하다.
  • 디렉터리에 대한 심볼릭 링크를 생성할 수 있다.
  • 심볼릭 링크와 대상 파일은 아이노드 번호와 파일 허가권이 다르다.
  • 심볼릭 링크의 허가권이 변경되더라도 대상의 허가권이 변경되지 않는다.
  • 심볼릭 링크는 대상 파일의 아이노드가 아닌 대상 파일의 경로만을 참조한다.
  • ln -s 명령어를 사용하여 심볼릭 링크를 생성할 수 있다.

반응형