하드 링크

  • 기존 파일에 새로운 파일명을 갖은 파일을 생성
  • 하드 링크파일은 기존파일과 동일한 inode 번호를 갖음
  • 기존 파일을 삭제해도 하드 링크파일은 실행 가능
  • 같은 inode를 갖는 이름이 다른 파일이라고 생각 (원본파일이라는 개념이 없음)
    $ ln [기존 파일] [하드링크 파일명]
    

심볼릭 링크(소프트 링크)

  • 원본 파일을 가르키는 링크 파일 생성
  • 원본 파일과 다른 inode 번호를 갖음
  • 파일 타입 : l
  • 원본 파일 삭제시 실행 불가
  • Windows의 바로가기와 같은 역할
    $ ln -s [원본 파일] [심볼릭링크 파일명]
    


$ touch text            # text 이름의 원본파일 생성
$ ln text aaa           # aaa 이름의 하드링크 생성
$ ln -s text bbb        # bbb 이름의 심볼릭링크 생성

$ ls -il
478507 -rwxrwxrwx 2 europa europa 13 Jun  3 09:52 aaa              # 하드 링크
225179 lrwxrwxrwx 1 europa europa 4 Jun  3 09:52 bbb -> text      # 심볼릭 링크
478507 -rwxrwxrwx 2 europa europa 13 Jun  3 09:51 text             # 원본

→ 원본파일과 하드링크의 inode 번호가 478507로 같음
→ 심볼릭링크의 inode 번호는 225179로 원본과 다름

$ cat text
text comment
$ cat aaa
text comment
$ cat bbb
text comment

$ rm text
$ ls -il
478507 -rwxrwxrwx 2 europa europa 13 Jun  3 09:52 aaa              # 하드 링크
225179 lrwxrwxrwx 1 europa europa 4 Jun  3 09:52 bbb -> text      # 심볼릭 링크

$ cat text
cat: text: No such file or directory
$ cat aaa
text comment
$ cat bbb
cat: bbb: No such file or directory

→ 원본파일이 삭제되어도 하드 링크는 사용 가능
→ 심볼릭 링크는 원본이 사라졌기에 사용 불가능