목록으로

파일 링크

시리즈, 입문
2024. 4. 10. PM 9:17:24

기본 개념

웹에서 링크라는 용어가 사용되는 걸 들어보셨나요? 단어 뜻 그대로 어떤 대상을 다른 대상에 연결하죠. 맥OS와 리눅스의 파일 시스템에도 링크 기능이 있으며, 두 가지 주요 유형의 링크를 지원해요. 링크 기능은 ln 명령어로 사용할 수 있어요.

심볼릭 링크(Symbolic link)

원본 파일이나 디렉터리를 가리키는 지시자를 붙인 거예요. 간단히 말해서 별칭 같은 걸 붙인 거죠.
Symlink라고도 줄여 표현합니다.
명령 줄에 별칭을 붙이는 명령어가 alias라면, 파일이나 디렉터리에 별칭을 붙이는 걸 링크라고 볼 수 있죠. 별칭 같은 것이기 때문에 심볼릭 링크를 삭제해도 원본에는 영향을 미치지 않아요. A사람에게 별명을 붙여줬다가 그 이름을 더이상 사용하지 않는다고 해서 A사람이 사라지지 않는 것처럼요.
그 반대로 심볼릭 링크 대상인 원본을 삭제하면 심볼릭 링크는 무용지물 상태가 돼요. 심볼릭 링크 자체가 파일이기 때문에 심볼릭 링크는 여전히 존재하지만, 원본이 존재하지 않으므로 원본에 접근하지 못하죠.
링크 명령어는 ln이며, 심볼릭 링크를 생성하려면 -s 옵션을 사용하면 돼요.

하드 링크(Hard link)

하드 링크는 심볼릭 링크에 비해 조금 이해하기 까다로울 수 있어요. 파일이나 디렉터리에 별칭을 붙이는 건 심볼릭 링크와 같은데, 원본 파일에 대해 사본처럼 동작하는 점이 다르죠. hello.md 파일에 하드 링크를 hi.md로 생성하면 이 파일에 대한 링크 횟수(또는 개수)를 1 증가시킵니다.
링크 횟수를 정확히는 참조 횟수(참조 카운트)라고 합니다.
hello.md를 삭제하는 경우, 참조 카운트가 있는 한 링크 대상인 실제 파일은 여전히 남아있습니다. 삭제한 이름만 사라지죠. hello.md라는 파일은 사라진 것 같지만, 실제 파일은 hi.md라는 이름으로 남아있는 거죠. cp 명령어로 사본을 복사하는 것과 다른 점은, 사본을 만드는 건 원본의 용량만큼 보조 기억 장치의 용량을 써요. 원본이 1기가이면 사본도 1기가를 사용하는 거죠. 하드 링크는 hello.mdhi.md가 존재하지만 실제 용량은 원본 용량인 1기가만 사용하고 있는 상태예요.
사용 방법은 심볼릭 링크 사용 방법에서 -s 옵션만 제외하면 돼요.
심볼릭 링크와 달리 하드 링크는 저장 공간에 물리적으로 실재하는 개체를 대상으로 하므로 파일에만 링크할 수 있어요.
푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.
목차