IT/리눅스

[Linux] ln 사용 방법 / 심볼릭 링크와 하드 링크

몬스터r 2023. 1. 8. 19:38

[Linux] ln 사용 방법 / 심볼릭 링크와 하드 링크

오늘은 ln 명령어를 사용하여 심볼릭 링크와 하드 링크를 생성하는 방법을 알아보도록 하겠다.

 

 

사용 방법


심볼릭 링크 생성

[root@haechan conf]# ln -s /usr/local/src/httpd-2.4.51/test/modules/http2/conf ~/my_test

 

하드 링크 생성

[root@haechan my_test]# ln test.conf ~/test.conf

 

 

 

 

심볼릭 링크


심볼릭 링크는 파일이나 디렉토리의 경로를 단축할 때 주로 사용한다.

 

보통 자주 사용하는 경로를 등록한다. 예를 들면 다음과 같은 디렉토리가 있을 때 경로를 전부 입력하기에 번거롭다. 이럴 때 보통 심볼릭 링크를 사용한다.

 

기존 경로

: /usr/local/src/httpd-2.4.51/test/modules/http2/conf

심볼릭 경로

~/my_test

 

Home directory에서 cd my_test만 입력해도 기존 경로로 이동이 가능하기 때문에 요긴하게 쓰인다. 하지만 원본 파일이나 디렉토리가 삭제되면 심볼릭 링크는 쓰레기 파일이 된다.

 

심볼릭 링크로 파일을 수정하면 원본 파일도 같이 수정되기 때문에 조심해야 한다.

 

표시는 다음과 같이 표시가 되고, 퍼미션을 나타내는 부분 맨 앞에 l로 확인할수 있다.

[root@haechan ~]# ll
total 12
lrwxrwxrwx. 1 root root   51 Jan  5 06:57 my_test -> /usr/local/src/httpd-2.4.51/test/modules/http2/conf

 

 

하드 링크


하드 링크는 동일한 파일을 복사와 같은 형태로 다양한 이름으로 사용하는 방법이다. 심볼릭 링크와 같이 원본 파일이나 링크 파일 중 하나가 수정되면 원본과 링크 파일 둘 다 동기화 되지만, 삭제에 관해서는 동기화 되지 않는다. 또한 심볼릭 링크는 원본 파일이 삭제되면 링크 파일은 아무런 일도 못 하지만 하드 링크는 원본파일이 삭제 돼도 상관이 없다.

 

하드 링크는 주로 어느 한 파일을 공유해야 할 때 하드링크를 사용한다.

 

예를 들면, 나의 home directory 내부의 파일을 /tmp에 두고, 사용자들과 공유하고 수정할 수 있도록 해야 하지만, 삭제되는 것을 방지하기 위해 사용한다고 보면 된다.

 

하드 링크의 특징은 inode 번호가 원본 파일과 같고, 퍼미션 부분도 일반 파일과 동일하다.