일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- lcoate 설치
- linux
- Docker
- find
- 이미지 레지스트리
- 파일
- LS
- 이미지
- 리눅스
- locate 설치 방법
- mkdir
- 컨테이너
- umask
- container
- 셸
- etc
- RM
- 명령어
- q!
- 레드햇
- 도커
- image
- 디스크
- PS
- Ctrl
- 자격증
- docker create
- 리눅스마스터2급
- docker logout
- docker logs
- Today
- Total
Bae's Digital Dialogues
리눅스[Linux] ln 명령어:링크 만들기 본문
ln 명령어는 링크를 생성한다.
ln [옵션] <링크할 파일> <링크 이름>
링크라는 말의 의미에 대해 알아보자
링크란?
리눅스의 파일 시스템에서는 파일에 별명을 붙이는 것이 가능하다. 이를 링크라고 부르며 별명을 붙이는 것을 '링크를 생성한다'라고 한다.
링크는 하드링크와 심볼링 링크로 나뉘어진다. 보통 심볼릭 링크가 많이 사용되고 하드 링크가 필요한 경우는 많지 않다.
하드링크와 심볼릭 링크에 대해 자세히 알아보자
하드 링크
/etc/crontab을 file1에 복사한 후 file1에 대해 file2라는 이름의 하드 링크를 만들어보자
cp /etc/crontab file1 #/etc/crontab을 file1에 복사
ln file1 file2 #하드 링크 file2 만들기
하드 링크 file2에 접근하는 것은 file1에 접근하는 것과 동일하다
file1과 file2를 열어보자
이처럼 cat으로 file2의 내용을 출력하면 file1의 내용이 출력된다. 물론, file1을 출력해도 file1의 내용이 출력된다. 즉, 하드 링크란 한 파일 원본에 이름을 여러 개 붙이는 기능이다.
하드 링크로 만든 파일에 대해 어느 것이 원본이고 어느 것이 복사본인지 구분하지 않아도 된다. 왜냐하면 양쪽 다 원본 파일이기 때문이다.
하드 링크 삭제하기
하드 링크로 여러 이름을 가지게 된 파일 중 하나를 삭제하면 지정한 이름의 파일만 삭제되고 하드 링크로 연결된 나머지 파일들은 남아 있다.
하드 링크로 연결된 파일을 삭제해보자
rm file1 #file1 삭제하기
rm file2 #file2 삭제하기
file2를 삭제했지만 file1의 내용이 출력되는 것을 확인할 수 있다.
파일 자체는 모든 하드 링크가 없어져야 삭제된다.
모든 하드 링크가 없어져서 파일의 실체도 없어진 것을 확인할 수 있다.
하드 링크는 한 파일에 이름을 여러 개 붙이는 기능이다. 따라서 모든 이름이 없어져야 파일이 지워진다.
심볼릭 링크
디렉터리는 하드 링크할 수 없으며, 하드 링크는 서로 다른 디스크에 걸쳐서 만들 수 없다는 제한이 있다. 그런데 심볼릭 링크는 이런 제한이 없어 더 많이 사용된다.
ln 명령어를 사용할 때 -s 옵션을 붙이면 심볼릭 링크가 만들어진다. 다음은 /etc/crontab을 복사한 file1에 대해 file2라는 심볼릭 링크를 만드는 과정이다.
심볼릭 링크 file2 만들기
cp /etc/crontab file1 #/etc/crontab을 file1에 복사
ln -s file1 file2 #file1에 대해 file2라는 심볼릭 링크를 만듬
ls 명령어를 실행할 때 -l 옵션을 지정하면 심볼릭 링크 여부를 확인할 수 있다. 다음과 같이 어떤 파일에 연결되었는지 화살표(->)로 표시된다.
심볼릭 링크를 ls -l로 확인
심볼릭 링크 파일에 접근하면 링크로 연결된 파일에 접근할 수 있다.
심볼릭 링크를 지정하여 명령어 실행
file1의 내용이 출력된걸 확인할 수 있다.
심볼릭 링크란 원본 파일에 대한 정보가 담긴 작은 특수 파일이며 하드 링크와 달리 원본과 구별된다.
심볼릭 링크 삭제하기
심볼릭 링크는 rm 명령어로 지울 수 있다. 이때 원본에는 어떠한 영향도 주지 않는다.
심볼릭 링크 삭제
rm file2 #심볼릭 링크 file2 삭제하기
원본 파일만 남게 되었다.
심볼릭 링크를 지우지 않은 채 원본 파일을 지울 수도 있다. 그러면 심볼릭 링크가 깨진 상태가 된다.
원본 파일인 file1을 삭제하고 ls -l로 조회하였더니 심볼릭 링크가 깨진 상태가 된 것을 확인할 수 있다.
셸의 설정에 따라 ls -l에서 링크가 깨진 심볼릭 링크가 붉게 표시되기도 한다.
end
'Linux' 카테고리의 다른 글
리눅스[Linux] mkdir, rmdir, stat (0) | 2025.03.19 |
---|---|
리눅스[Linux] find, locate (0) | 2024.06.26 |
리눅스[Linux] ifconfig, chmod, ps, kill (0) | 2024.06.11 |
리눅스[Linux] cat, grep, 리다이렉트, less, tar (2) | 2024.06.10 |
리눅스[Linux] vi 편집기 사용 (2) | 2024.06.03 |