하드 링크(Hard Link), 심볼릭 링크(Symbolic Link)
하드 링크
- 기존 파일에 새로운 파일명을 갖은 파일을 생성
- 하드 링크파일은 기존파일과 동일한 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
→ 원본파일이 삭제되어도 하드 링크는 사용 가능
→ 심볼릭 링크는 원본이 사라졌기에 사용 불가능