링크란
리눅스의 파일 시스템에는 파일에 별명을 붙이는 것이 가능하다.
이것을 링크라고 부르며, 별명을 붙이는 것을 "링크를 생성한다"라고 한다.
링크에는 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link) 두 종류가 있지만, 일반적으로 심볼릭 링크가 더 많이 사용된다.
하드 링크
우선 내용이 hello인 file1에 대해 file2라는 이름의 하드 링크를 만들었다.
file2의 내용을 출력하면 file1의 내용이 출력되며, 반대로 file1을 출력해도 file1의 내용이 출력된다.
file1의 내용을 bye로 변경 시, file1의 내용뿐만 아니라 file2의 내용 역시 변경되는 것을 확인할 수 있다.
(반대의 경우도 동일하다)
즉, 하드 링크란 하나의 파일 원본에 이름을 여러 개 붙이는 기능이다.
하드 링크로 만든 파일에 대해 어느 것이 원본이고 어느 것이 복사본인지 구분하지 않아도 된다.
왜냐하면 양쪽 다 원본 파일이기 때문이다.
하드 링크로 여러 이름을 가지게 된 파일 중 하나를 삭제 시, 지정한 이름의 파일만 삭제되고 하드 링크로 연결된 나머지 파일들은 남아 있다.
즉, 파일 자체는 모든 하드 링크가 없어져야 삭제된다.
심볼릭 링크
디렉터리는 하드 링크할 수 없으며, 하드 링크는 서로 다른 디스크에 걸쳐서 만들 수 없다.
그러나 심볼릭 링크는 이러한 제한이 없어 더 많이 사용된다.
ln 명령어를 사용할 때 -s 옵션을 붙이면 심볼릭 링크를 만들 수 있다.
ls 명령어를 실행할 때 -l 옵션을 지정하면 심볼릭 링크 여부를 확인할 수 있다.
심볼릭 링크를 지울 경우, 원본 파일에는 아무런 영향을 주지 않는다.
반면, 심볼릭 링크를 지우지 않은 채 원본 파일을 지울 경우 심볼릭 링크가 Broken Link가 된다.
즉, 심볼릭 링크란 원본 파일에 대한 정보가 담긴 작은 특수 파일이며 하드 링크와 달리 원본과 구별된다.
링크가 유용한 경우
지금까지 하드 링크와 심볼릭 링크에 대해 알아봤다.
그렇다면 어떤 상황에서 링크를 사용하는 것이 좋을까?
첫 번째로 긴 경로명을 짧게 사용하는 경우다.
다음과 같이 링크를 사용하여 긴 경로명을 입력하지 않고 해당 경로에 쉽게 접근할 수 있다.
두 번째로 여러 버전의 프로그램이 있는 경우다.
프로그램을 설치할 때, 디렉터리 이름에 버전 정보를 붙여 여러 버전의 소프트웨어를 배치하는 경우가 있다.
이때 각 버전의 경로를 직접 지정하지 않고 심볼릭 링크를 사용하여 링크에 연결된 버전을 사용할 수 있다.
Reference
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=285368686&start=slayer
모두의 리눅스
기초부터 탄탄하게 준비하는 리눅스 입문서. 리눅스가 무엇인지 소개하고, 리눅스를 사용할 수 있는 실습 환경을 준비하는 것에서 시작한다. 실습 환경이 준비되면 리눅스에서 가장 많이 사용
www.aladin.co.kr