개요
리눅스에서도 윈도우의 '바로 가기' 와 같은 기능을 이용할 수 있다는 사실을 알고 조사 후 남기는 포스팅이다.
먼저 리눅스에서 링크는 심볼릭링크와 하드링크가 있는데 두 가지 링크를 알아보기 앞서 파일링크 라는 것을 먼저 알아야한다.
윈도우에서 파일링크는 '바로 가기' 기능이다.
윈도우에서 저런 아이콘에 있는 화살표를 많이 본 적이 있을 것 이다.
모두가 알다시피 '바로 가기 아이콘' 이라는 표시인데 해당 아이콘은 확장자가 .lnk로 되어있다. (아마 링크의 약어인듯)
아이콘의 속성을 들여다보면,
이런 식으로 파일의 대상 경로가 적혀 있다.
결국 파일의 경로에 있는 실제 오리지널 파일을 연결시켜주는 아이콘이라는 것이다.
그리고 리눅스에서도 이러한 기능을 지원한다!
최대한 간략하게 정리해보면
- 심볼릭 링크
- 원본파일을 가르키도록 링크(윈도우 바로가기 파일 동일)
- 원본파일의 크기와 무관
- 원본파일을 삭제하면 링크파일(바로가기 파일)이 빨갛게 깜빡거리면서 원본이 없다고 알려줌
- 하드 링크
- 원본파일과 동일한 내용의 다른 파일(복제, 주소값은 같음)
- 주소값이 같기 때문에 원본파일이 수정되어도 하드링크파일이 수정되고 하드링크파일이 수정되어도 원본이 수정됨
+ 추가 : 디렉토리에 링크를 적용하면 링크가 적용된 디렉토리와 오리지널 디렉토리가 연결된다.
예시 )
- original 디렉토리에 copy 링크 생성(copy->original)
- copy 링크에 test.php 생성
- original 디렉토리에도 test.php 생성됨
사용법
ln 명령어(옵션이 없으면 하드링크, -s옵션 사용 시 심볼릭 링크)
$ ln [option] 원본 파일 대상명
옵션 | 의미 |
-s (--symbolic) | 심볼릭 링크 생성 시 사용 |
-S (--suffix) | 백업 파일 생성 시 원하는 suffix를 지정 가능 |
-v (--verbose) | 링크파일을 만드는 정보를 자세히 출력 |
-b (--backup) | 대상 파일이 이미 존재하면 백업 파일을 만들고 링크파일 생성 |
-f (--force) | 링크 파일 존재 시 삭제하고 생성 |
-i (--interactive) | 대상 파일이 존재하면 대상 파일을 지울 것 인지 물어봄 |
예시
$ ln test.txt t
-> test.txt라는 파일의 하드링크 파일인 t를 현재 폴더에 생성
$ ln -s test t
-> test라는 파일의 심볼릭 링크 파일인 t를 현재 폴더에 생성
$ ln -s /etc/xinetd.d x
-> 해당 경로의 심볼릭 링크 파일인 x를 현재 폴더에 생성
참고 포스팅