Link

정승균·2020년 12월 10일
0

리눅스

목록 보기
10/29
post-thumbnail

1. 하드 링크


  • 파일의 고유번호인 inode에 연결됨
  • 디렉토리가 아닌 일반 파일에만 생성 가능

  • $ ln file newfile : 하드링크 생성
jsg@jsg-ubuntu:~/testdir$ ln hello.txt hello2.txt
jsg@jsg-ubuntu:~/testdir$ ls -li
total 8
1175795 -rw-rw-r-- 2 jsg jsg 8 Dec 11 01:18 hello2.txt
1175795 -rw-rw-r-- 2 jsg jsg 8 Dec 11 01:18 hello.txt

# inode가 같고 link가 2개임을 볼 수 있음
  • 같은 파일이기 수정 사항이 공유됨
jsg@jsg-ubuntu:~/testdir$ echo "Changed" > hello.txt
jsg@jsg-ubuntu:~/testdir$ cat hello2.txt
Changed

2. 심볼릭 링크


  • 파일의 경로를 참조함
  • 디렉토리를 포함한 모든 파일에 생성 가능

  • $ ln -s file newfile : 심볼릭 링크 생성
jsg@jsg-ubuntu:~/testdir$ ln -s hello.txt hello3.txt
jsg@jsg-ubuntu:~/testdir$ ls -li
total 8
1175795 -rw-rw-r-- 2 jsg jsg 8 Dec 11 01:18 hello2.txt
1175830 lrwxrwxrwx 1 jsg jsg 9 Dec 11 01:31 hello3.txt -> hello.txt
1175795 -rw-rw-r-- 2 jsg jsg 8 Dec 11 01:18 hello.txt

# hello3은 inode가 다름을 볼 수 있음
  • 경로를 참조하기 때문에 참조한 파일이 삭제되면 링크가 깨짐
jsg@jsg-ubuntu:~/testdir$ rm hello.txt
jsg@jsg-ubuntu:~/testdir$ cat hello2.txt
Changed
jsg@jsg-ubuntu:~/testdir$ cat hello3.txt
cat: hello3.txt: No such file or directory
  • $ readlink [option] link : 링크 따라가기
jsg@jsg-ubuntu:~/testdir$ readlink hello3.txt
hello.txt
jsg@jsg-ubuntu:~/testdir$ readlink -f hello3.txt	# canonical path 
/home/jsg/testdir/hello.txt
jsg@jsg-ubuntu:~/testdir$ readlink -e hello3.txt	# 원본이 존재하지 않음

0개의 댓글