
파일 링크 (Link)
- 리눅스에서 파일이나 디렉터리를 생성하면 I-node (Index node)라는 번호가 임의로 부여되고, 이 번호를 기준으로 관리됨
- ls -i 명령으로 확인할 수 있으며, 파일명이 다르더라도 이 번호가 같다면 내부적으로는 같은 파일로 인식
- 이렇게 하나의 파일을 여러 개의 이름으로 관리하거나 디렉터리의 접근 경로를 단축하는 형태를 링크 라고 부르고, ln 명령을 이용해서 만들 수 있음
- 하드링크
- 심볼릭 링크 (소프트링크)
ln
- 하드링크 또는 심볼릭 링크를 생성하는 명령
- 명령 실행시 옵션 없이 사용하면 하드링크
- -s(--symbolic) 옵션을 사용하면 심볼릭 링크
ln [option] 원본 대상파일명
옵션
| 옵션 | 설명 |
| -s --symbolic |
심볼릭 링크를 생성시 사용하는 옵션 |
| -v --verbose |
링크 만드는 정보를 자세히 출력 |
| -f --force |
링크 파일 존재 시에 삭제하고 생성 |
사용 예
- joon.txt라는 파일의 하드링크 파일인 j를 현재 디렉터리에 생성
ln joon.txt j
- joon.txt라는 파일의 심볼링링크 파일인 j를 현재 디렉터리에 생성
ln -s joon.txt j
- /etc/yum.repos.d의 심볼릭 링크 파일인 y를 현재 디렉터리에 생성
ln -s /etc/yum.repos.d y
하드 링크와 심볼릭 링크
하드링크
- 하나의 동일한 파일을 디스크의 다른 곳에 배치(복사와 같은 형태)하여 여러 이름으로 사용되는 형식
- 파일에만 부여 가능
- 리눅스 초기에는 Sticky-Bit가 설정되지 않는 공유 디렉터리에서 사용
- 일반적으로 공유 디렉터리에 쓰기(w) 권한을 설정하면 누구나 파일을 생성 및 삭제할 수 있게 되는데, 문제는 다른 사용자 소유의 파일도 삭제하는 문제가 발생. 이 경우를 대비해서 사용자의 홈 디렉터리 안에 하드링크 파일을 생성하면 다른 사용자에 의해 파일이 삭제되어도 안전하게 보존할 수 있음
- 특징
- ls -i 명령으로 I-node 번호를 확인하면 원본과 링크 파일의 번호가 같음
- 원본과 링크 파일의 내용과 파일의 크기가 같음
- ls -l 명령시 출력되는 링크의 숫자가 올라감
- 원본이나 링크 파일 중에 어떠한 파일을 수정해도 같이 반영됨
- 원본 파일을 삭제해도 링크 파일은 아무런 영향을 받지 않음
- 하드 링크는 파일만 설정할 수 있고, 동일한 파일 시스템에서만 사용할 수 있음
- 파티션이나 디스크 드라이브를 가로질러 사용할 수 없음
심볼릭 링크
- 하나의 파일을 여러 이름으로 가리키게 하는것
- 원본과 생성된 링크 파일은 완전히 다른 파일로 관리됨
- 파일이나 디렉터리에 모두 사용 가능
- 일반적으로 디렉터리의 경로 단축이나 변경에 사용
- 특징
- ls -i 명령으로 I-node 번호를 확인하면 원본과 생성된 링크 파일의 번호가 다름
- 생성된 링크 파일의 크기가 매우 작음
- ls -l 명령 시에 출력되는 권한 영역의 맨 앞쪽에 ‘l’이라고 표시됨
- 원본이나 링크 파일 중에 어떠한 파일을 수정해도 같이 반영됨
- 원본 파일을 삭제하면 링크 파일은 아무런 구실을 하지 못함
- 디렉터리에 링크 파일을 생성하면 윈도우의 바로가기나 단축 아이콘의 기능과 같음
- 생성되는 링크 파일의 퍼미션 값이 777로 표시되나, 이 값은 원본 파일의 퍼미션과는 무관
💡 예제
- ‘aaa.txt’라는 텍스트 파일을 생성하고 이 파일을 cp 명령어로 복사하여 ‘bbb.txt’라는 파일을 생성
- aaa.txt 파일의 하드링크 a를 생성하고, bbb.txt의 심볼릭 링크 b를 생성
aaa.txt파일을 bbb.txt파일로 복사해서 파일의 크기는 같지만, I-node 번호는 다름
→ 리눅스 시스템 내부에서는 다른 파일로 인식한다는 뜻
하드 링크 파일인 a는 aaa.txt 파일과 I-node 번호 및 파일 크기가 동일. 링크의 숫자값이 2로 올라감
bbb.txt 파일의 심볼릭 링크인 b는 원본 파일에 비해 용량도 작고, I-node 번호가 다름
'Linux' 카테고리의 다른 글
| [Linux] 파일 시스템 생성(2) - mkfs, mkfs.xfs (0) | 2025.07.10 |
|---|---|
| [Linux] 파일 시스템 생성(1) - fdisk (3) | 2025.07.05 |
| [Linux] chgrp (change group) (0) | 2025.06.28 |
| [Linux] chmod(change mode) (2) | 2025.06.26 |
| [Linux] 특수 권한 (0) | 2025.06.20 |