ln 이란?
링크를 생성합니다. linux filesystem에서 링크란 inode(unix에서 파일에 대한 모든 정보를 기록하는 블록)와 파일의 이름을 연결합니다.종류
Hard link
- inode 번호가 공유되고 이름만 다른 파일입니다.- 파일을 생성하면 unix계열에서는 모든 파일을 hard link로 1개를 생성을 합니다. 추가로 hard link를 생성할때 ln 명령을 이용하고 추가 옵션없이 기본값이 hard link로 생성합니다. - ls 명령으로 파일목록을 보면 hard link로 생성된 파일의 경우 확인이 쉽지 않으며 원본 파일이 수정되면 같이 변경됩니다.
- 존재 모든 hard 링크가 사라지면 해당 파일이 사라지게 됩니다.
- inode를 공유하므로 같은 filesystem에서만 사용이 가능합니다.
Symbolic link
- 윈도우에서 사용하는 바로가기와 비슷합니다.- ls 명령으로 쉽게 확인이 가능합니다.
- 원본 파일이 지워지더라도 symbolic link파일은 링크가 깨진채 존재가 가능합니다.
간단 사용법
Hard link시
ln TARGET LINK_NAME
Symbolic link시
ln -s TARGET LINK_NAME
예제
Hard link 예제
링크걸기
sh-4.4$ echo 111 > 1.txt sh-4.4$ cat 1.txt 111 sh-4.4$ ln 1.txt 2.txt sh-4.4$ ls -l total 12 -rw-r--r-- 2 23646 23646 4 May 20 06:57 1.txt -rw-r--r-- 2 23646 23646 4 May 20 06:57 2.txt -rw-r--r-- 1 23646 23646 978 May 20 06:56 README.txt sh-4.4$ cat 1.txt 111 sh-4.4$ cat 2.txt 111
-rw-r--r-- 2 <= 여기 숫자는 링크가 걸린 갯수가 됩니다.
기본적으로 생성되는 파일은 한개의 hard link가 존재하기 때문에 1이 됩니다. README.txt 참고
수정시
sh-4.4$ vi 2.txt sh-4.4$ cat 2.txt 222111 sh-4.4$ cat 1.txt 222111 sh-4.4$ vi 1.txt sh-4.4$ cat 1.txt 1222111 sh-4.4$ cat 2.txt 1222111 sh-4.4$ ls -la total 24 drwxrwxrwx 1 cg cg 4096 May 20 06:59 . drwxrwxrwx 1 cg cg 4096 Sep 9 2017 .. -rw-r--r-- 1 23646 23646 207 May 20 06:56 .cg_conf -rw-r--r-- 2 23646 23646 8 May 20 06:59 1.txt -rw-r--r-- 2 23646 23646 8 May 20 06:59 2.txt -rw-r--r-- 1 23646 23646 978 May 20 06:56 README.txt
Symbolic link 예제
링크걸기
sh-4.4$ ln -s 1.txt 3.txt sh-4.4$ ls -l total 12 -rw-r--r-- 2 23646 23646 8 May 20 06:59 1.txt -rw-r--r-- 2 23646 23646 8 May 20 06:59 2.txt lrwxrwxrwx 1 23646 23646 5 May 20 07:00 3.txt -> 1.txt -rw-r--r-- 1 23646 23646 978 May 20 06:56 README.txt
사용시
sh-4.4$ ls -l total 12 -rw-r--r-- 2 23646 23646 8 May 20 06:59 1.txt -rw-r--r-- 2 23646 23646 8 May 20 06:59 2.txt lrwxrwxrwx 1 23646 23646 5 May 20 07:00 3.txt -> 1.txt -rw-r--r-- 1 23646 23646 978 May 20 06:56 README.txt sh-4.4$ cat 3.txt 1222111 sh-4.4$ cat 1.txt 1222111
댓글 없음:
댓글 쓰기