링크

링크의 개념

파일을 다른 이름으로 연결하는 명령

링크의 사용법

1
ln [options] 원본파일명 [대상파일명]

-기본적으로는 하드 링크를 생성함
--s옵션을 사용시 심볼릭 링크가 생성됨

옵션

옵션 full name 설명
-s   심볼릭 링크를 생성하는 옵션

심볼릭 링크와 하드 링크 소개

구분 full name 설명
하드 링크 hard link - 하나의 파일에 다른 이름(별명)을 부여하는 것
- 파일에만 가능하고, 디렉터리에는 불가능하다.
- 이름이 하나 더 생기며, 새로 생긴 이름으로도 해당 파일을 다룰 수 있다.
- 하드링크가 생성될 경우 원본 파일의 링크 카운트가 증가한다.
- 동일 파일 시스템에만 링크할 수 있으며, 다른 파일 시스템에는 불가
심볼릭 링크 symbolic link - 윈도우의 바로가기와 같은 역할을 하는 독립적 파일
- 파일 및 디렉터리 모두 심볼릭 링크 가능
- 원본 파일의 링크 카운트가 늘어나지 않는다
- 원본을 삭제하거나 이름을 바꾸면 심볼릭 링크는 의미가 없어진다.

심볼릭 링크와 하드 링크 비교

특징 하드링크 심볼릭 링크
저장 공간 추가 공간 사용하지 않음 경로 정보만 저장, 매우 작음
다른 파일 시스템 지원 불가능 가능
디렉터리 링크 불가능 가능
원본 파일 삭제 시 데이터는 남아 있음, 하드링크를 통해 접근 가능 링크가 끊어져(Broken Link) 파일 접근 불가
속도 빠름 (원본과 동일한 데이터 참조) 원본 참조를 한 번 더 따라가므로 약간 느림
용도 파일 공유 및 데이터 보존 파일/디렉터리의 참조 경로 제공, 경로 관리 유연성

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
touch test.txt
>> -r--r--r--. 1 user user    0 Nov 24 20:39 test.txt

ln test.txt hardLnFile
ls -l
>> -r--r--r--. 2 user user 0 Nov 24 20:39 hardLnFile
>> -r--r--r--. 2 user user 0 Nov 24 20:39 test.txt

ln test.txt hardLnFile2
ls -l
>> -r--r--r--. 3 user user 0 Nov 24 20:39 hardLnFile
>> -r--r--r--. 3 user user 0 Nov 24 20:39 hardLnFile2
>> -r--r--r--. 3 user user 0 Nov 24 20:39 test.txt

ln -s test.txt symbolicLnFile
ls -l
>> -r--r--r--. 3 user user 0 Nov 24 20:39 hardLnFile
>> -r--r--r--. 3 user user 0 Nov 24 20:39 hardLnFile2
>> lrwxrwxrwx. 1 user user 8 Nov 24 20:41 symbolicLnFile -> test.txt # 심볼릭
>> -r--r--r--. 3 user user 0 Nov 24 20:39 test.txt

Reference

UNIX시스템 - 김희천,김진욱 저