Hard Link vs. Symbolic Link(Soft Link)
Hard link는 말 그대로 실제 존재하는 파일의 경로.
In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto.
https://en.wikipedia.org/wiki/Symbolic_link
Symbolic link - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Any file that contains a reference to another file or directory In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (ca
en.wikipedia.org
-> symbolic link의 역할은 파일 또는 디렉토리를 가리키는 것. symbolic link가 가리키는 대상은 실제 존재하는 파일이 있고, 가리키는 역할은 따로 symbolic link가 수행
symbolic link는 데이터 자체를 직접 가리키는 링크가 아니라 일종의 참조, 포인터의 역할.
ln command: link를 생성
ln 명령어를 -s 옵션없이 쓰면 default로 hard link를 생성
ln -s 로 명령어를 쓰면 symbolic link를 생성
# 사용 방식
ln -s source_file target_file
# 예시
ln -s my_file.txt my_link.txt
# 결과
# 출처: https://linuxize.com/post/how-to-create-symbolic-links-in-linux-using-the-ln-command/
ls -l my_link.txt
# lrwxrwxrwx 1 linuxize users 4 Nov 2 23:03 my_link.txt -> my_file.txt
화살표 기호 -> 는, file_A -> file_B라고 했을 때 file_A가 file_B를 참조하는 symbolic link임을 나타냅니다.
symbolic link의 활용 예시 1
원격 서버를 사용하게 되면 루트 root 디렉토리의 용량은 제한되어 있어서 root 디렉토리에 파일을 모두 저장해놓으면 용량 초과 문제로 서버가 꺼지는 문제가 발생하기도 합니다. 그렇기 때문에 대신 더 큰 용량의 블록 스토리지를 사용해야 합니다.
서버에 마운트된 블록 스토리지의 위치를 확인해보면 다음과 같습니다.
/mnt/block-storage
그런데 제가 서버에 접속해서 제 계정으로 들어가기 때문에 제 홈 디렉토리는 /home/my_user_name 이고, working directory도 이 홈 디렉토리 아래로 설정됩니다. 그래서 매번 외부 디렉토리인 /mnt/block-storage으로 이동해서 파일을 저장하기에는 귀찮습니다. 때문에 아예 블록 스토리지로 가는 '바로가기'를 제 홈 디렉토리 안에 만들어놓으면 편하겠죠. 그 '바로가기' 역할을 하는 게 symbolic link입니다.
ln -s /mnt/block-storage /home/my_user_name/files
여기선 제가 symbolic link의 이름을 files라고 설정했지만 각자 알아볼 수 있게 이름을 지으면 됩니다.
참고 자료
- https://linuxize.com/post/how-to-create-symbolic-links-in-linux-using-the-ln-command/
- https://en.wikipedia.org/wiki/Ln_(Unix)
'2023년 이전 > 리눅스' 카테고리의 다른 글
우분투 리눅스에서 Shutter (스크린샷 프로그램) 설치 + 키보드 단축키 설정까지 (0) | 2023.07.29 |
---|---|
VS Code에서 원격 서버 접속 오류 Case 1: 패스워드 만료 (0) | 2022.11.25 |
ForkLift로 로컬-원격 서버(또는 원격 서버-서버) 간 파일 쉽게 전송하기 (0) | 2022.10.13 |
SSH로 원격 서버 접속 + VS Code로 SSH config 설정하기 (0) | 2022.10.13 |
포트 포워딩하기 (0) | 2022.07.18 |