
rm 작업 중..(뭐가 심볼릭 링크였더라..)
파일이나 디렉토리의 경로를 참조하는 일종의 "바로가기" 같은 역할로, 파일이나 폴더를 직접 복사하지 않고 참조만 할 수 있도록 해줍니다.
이를 통해 디스크 공간을 절약하고, 파일 위치가 변경되더라도 동일한 경로를 사용할 수 있는 유연성을 제공합니다.
[예시] 윈도우에서의 바로가기 아이콘
리눅스에는 하드 링크(Hard Link)와 심볼릭 링크 두 가지 링크 유형이 있습니다.
하드 링크: 원본 파일과 동일한 아이노드(inode) 를 공유합니다. 즉, 파일의 복사본과 같아 원본이 삭제되어도 데이터가 유지되고, 동일한 파일 시스템에서만 사용 가능합니다.
심볼릭 링크: 별도의 파일로, 원본 파일의 경로 정보를 저장합니다. 원본 파일이 삭제되거나 이동되면 깨진 링크(broken link) 가 됩니다. 심볼릭 링크는 파일 시스템에 상관없이 사용 가능합니다.
※ 아이노드(index node) 는 파일 시스템에서 각 파일의 메타데이터(예: 파일 [크기/타입/권한/시간], 소유자 및 그룹, 데이터 블록 포인터 등)를 저장하고 관리하는 구조체. 각 파일은 고유한 inode 번호를 가지고 있습니다.
심볼릭 링크를 생성하려면 ln 명령어에 -s 옵션을 사용합니다. 기본 형식은 다음과 같습니다:
ln -s [대상 파일/디렉토리] [링크 이름]
예를 들어, /home/user/original.txt에 대한 심볼릭 링크를 /home/user/Original_Link.txt로 생성하려면 다음과 같이 입력합니다:
ln -s /home/user/original.txt /home/user/originalLink.txt
이제 /home/user/originalLink.txt를 통해 원본 파일에 접근할 수 있습니다.
ls -l 명령어를 사용합니다. 출력에서 링크 파일은 -> 기호로 원본 파일을 가리키고 있습니다.$ ls -l originalLink.txt
lrwxrwxrwx 1 user user 13 Nov 20 10:51 originalLink.txt -> /home/user/original.txt
rm 명령어를 사용합니다. 이때 원본 파일은 삭제되지 않습니다.버전 관리: 소프트웨어나 설정 파일의 여러 버전 중 하나를 심볼릭 링크로 가리켜 쉽게 전환할 수 있습니다.
공유 디렉토리: 특정 디렉토리를 여러 사용자나 서비스가 동일하게 접근할 수 있도록 링크를 생성하여 편리하게 공유할 수 있습니다.
쉬운 경로 지정: 긴 경로 대신 간단한 이름으로 특정 파일이나 디렉토리를 참조하기 위해 자주 사용됩니다.
깨진 링크: 원본 파일이 이동되거나 삭제되면 심볼릭 링크가 깨지게 됩니다. 이 경우 링크를 수정하거나 삭제해야 합니다.
※ find . -xtype l 명령어를 사용해 현재 디렉토리의 깨진 심볼릭 링크 목록을 조회 하여 find . -xtype l -delete로 삭제 할 수 있습니다.
순환 링크: 링크가 스스로를 참조하거나 순환 참조를 형성하면 시스템 성능에 영향을 미칠 수 있으므로 주의해야 합니다.