하드링크와 심볼릭링크
명령어
ln - 링크 생성
하드 링크
ln file link
심볼릭 링크
ln -s file link
하드 링크 특징
- 파일 시스템 외부에 있는 파일을 참조할 수 없습니다. (같은 파티션에 있는 파일이 아니면 참조불가)
- 하드 링크는 디렉토리를 참조 할 수 없다.
- 하드 링크를 포함한 디렉토리 목록은 해당 링크가 가리키고 있는 것이 무엇인지 보여주지 않는다.
- 하드 링크가 삭제될 때, 링크도 함께 사라지지만 파일 내용은 그 파일의 모든 링크가 삭제될 때까지 계속 남아 있는다( 파일에 할당된 공간이 그대로 남게 된다는 뜻)
- 하나의 파일에 적어도 하나의 링크가 연결됩니다.
심볼릭 링크 특징
- 하드 링크 한계를 극복하기 위해서 탄생
- 윈도우즈 바로 가기와 매우 비슷
- 심볼릭 링크를 편집시 심볼릭 링크가 참조하고 있는 파일도 역시 똑같이 변경
- 심볼릭 링크 삭제시 링크만 삭제되고 원본파일은 남아있음
하드 링크 실습
[user1@localhost ~]$ touch hard_link
[user1@localhost ~]$ ln hard_link hard_ln //hard_link파일을 hard_ln로 하드링크생
[user1@localhost ~]$
[user1@localhost ~]$ ls -li
위 두개의 파일이 같은 것을 알 수 있는지???
아이노드라고 불리는 디스크 블록체인을 하나 할당하고 이것을 이름 영역과 연결됩니다.
결국 각 하드 링크가 파일 내용을 담고 있는 각각의 아이노드를 참조하게 되는 것입니다.
위의 첫 필드에 67279636을 보면 같은 아이노드 번호가 있다. 즉 두 파일이 같은 아이노드 번호를 공유하고 있고 둘은 동일한 파일이라는 것을 알 수 있다.
심볼릭 링크 실습
심볼릭 링크는 하드 링크의 두 가지 단점을 보완하기 위해 탄생하였습니다.
하드링크는 파일만 참조 가능하고, 디렉토리는 참조 불가합니다
심볼릭 링크는 파일이나 디렉토리를 가리킬 텍스트 포인터를 가지고 있는 특수한 형태의 파일이다.
[user1@localhost ~]$ touch playground
[user1@localhost ~]$ cd playgroun
[user1@localhost playground]$ cp /etc/passwd .
[user1@localhost playground]$ mv ./passwd testfile
[user1@localhost playground]$ ln -s ./testfile ./dir1/testfile-sym
위 사진에서 맨 첫글자 " l "을 보면 심볼릭 링크라는 것을 알 수 있습니다. 그리고 이 심볼릭 링크가 ./testfile을 정확히 가리킨다는 점을 볼 수 있습니다 그리고 10이라는 것은 파일 크기가 아니라 ./testfile의 문자열 개수를 말해주는 것입니다.
*심볼릭 링크에 대해 한 가지 기억해야 할 것은 대부분의 파일 작업이 링크 그 자체에서 실행되는 것이 아니라 링크가 가리키고 있는 원본 파일에서 이루어지는 것
'❌이전글 > 이전글' 카테고리의 다른 글
네트워크Network 필수! OSI 7계층에 대해서 (2) | 2019.07.15 |
---|---|
리눅스 자동완성과 히스토리 histroy 기능 (0) | 2019.07.14 |
리눅스 - 이스케이프 문자 (1) | 2019.07.14 |
리눅스 - 파일디스크립터 표준입력/표준출력/표준오류 (0) | 2019.07.13 |
리눅스 centos7 - telent 원격지 접속을 해보자 (0) | 2019.06.24 |
파이썬 설치하기 (0) | 2019.06.19 |
메일서버 프로토콜 세가지 SMTP, POP3, IMAP (0) | 2019.06.08 |
리눅스CentOS7- 마스터 DNS서버 , 네임서버 구축 (0) | 2019.05.28 |