리눅스

리눅스 링크 (하드 링크 , 심볼릭 링크)

coling 2021. 5. 2. 17:00

링크에는 하드링크와 소프트링크(심볼릭 링크)가 있으며 그림과 같이 정리 할 수 있다.


하드링크와 심볼릭링크 사용해보기

 

test 파일 생성 vi test

첫번째 test 파일 내용.

하드링크생성 ln test hardlink

test 파일로 hardlink 를 만듭니다.

 

심볼릭링크생성 ln -s test softlink

test 파일로 softlink 를 만듭니다.(이때 -s 는 softlink(symbolic link)를 의미합니다.)

 

 

아이노드 블록까지 상세 리스트로 확인 ls-il

hardlink와 test의 inode 블록번호는 동일하고 softlink만 다른것을 확인할 수 있다.

 

이때 test 파일(원본파일)을 삭제하면 다음과 같이 나타난다.

 

cat 명령어로 hardlink와 symbolic링크를 출력해보면 hardlink만 정상적으로 출력된다.

 

여기서 새로운 test파일을 생성해보자 vi test

2번째 test파일 내용.

다시 ls -il 로  확인해보면 symbolic링크가 정상적으로 바뀐것을 알 수 있다.

그러나 이제는 3개 다 inode블록이 다르다.

 

이때 hardlink를 cat으로 출력해보면 처음 만들었던 test 파일의 내용이 출력되고, 

test 파일이나 softlink를 출력해보면 2번째로 만든 test 파일 내용이 출력된다.

 

 

 

 

결론)

hard링크는 원본 파일의 유무와 관계없이 파일의 내용을 출력가능하게 한다.(파일이 아닌 내용 자체를 가리킴.)

soft링크(symbolic 링크)는 파일 링크생성시 참고한 이름의 파일을 가르키며 window에서의 바로가기 개념과 유사하다.

(지웠다가 같은 이름으로 파일을 생성 시 soft링크는 새로만든 파일을 가르키지만 hard링크는 처음 만들었던 파일의 내용을 가르킨다.)