개요
ln 명령어는 기존 파일이나 디렉토리에 대한 참조(링크)를 생성합니다. 이는 원본 데이터를 복사하지 않고도 여러 위치에서 동일한 데이터에 접근할 수 있게 해줍니다. 특히 심볼릭 링크는 원본 파일의 경로를 가리키는 포인터 역할을 하여, 원본 파일이 삭제되면 링크가 깨지는 특성이 있습니다.
링크 유형
ln 명령어로 생성할 수 있는 두 가지 주요 링크 유형입니다.
- 하드 링크 (Hard Link): 동일한 inode를 공유하는 파일의 다른 이름입니다. 원본 파일이 삭제되어도 데이터는 남아있습니다. 다른 파일 시스템 간에는 생성할 수 없으며, 디렉토리에는 생성할 수 없습니다.
- 심볼릭 링크 (Symbolic Link / Soft Link): 원본 파일의 경로를 가리키는 포인터 파일입니다. 원본 파일이 삭제되면 링크가 깨집니다. 다른 파일 시스템 간에도 생성할 수 있으며, 디렉토리에도 생성 가능합니다.
주요 옵션
ln 명령어는 주로 심볼릭 링크를 생성하는 데 사용되지만, 다양한 옵션을 통해 링크의 동작 방식을 제어할 수 있습니다.
링크 유형
동작 제어
생성된 명령어:
명령어를 조합해 보세요.
설명:
`ln` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
ln 명령어를 사용하여 다양한 유형의 링크를 생성하는 예시입니다.
기본 심볼릭 링크 생성
ln -s /path/to/original_file /path/to/symlink
원본 파일에 대한 심볼릭 링크를 생성합니다.
현재 디렉토리에 심볼릭 링크 생성 (상대 경로)
ln -s ../../data/my_data.txt my_data_link.txt
현재 작업 디렉토리에 상대 경로를 사용하여 심볼릭 링크를 생성합니다. (주의: 상대 경로는 링크가 깨지기 쉬울 수 있습니다.)
디렉토리 심볼릭 링크 생성
ln -s /var/www/html /home/user/web_root
디렉토리에 대한 심볼릭 링크를 생성합니다.
기존 링크를 강제로 덮어쓰기
ln -sf /new/path/to/file /path/to/existing_link
대상 위치에 이미 링크가 존재할 경우, 확인 없이 새 링크로 덮어씁니다.
하드 링크 생성
ln /path/to/original_file /path/to/hardlink
원본 파일에 대한 하드 링크를 생성합니다. (디렉토리에는 불가능)
팁 & 주의사항
ln 명령어를 사용할 때 유의해야 할 점과 효율적인 사용을 위한 팁입니다.
심볼릭 링크 경로
심볼릭 링크 생성 시 원본 파일의 경로 지정에 대한 주의사항입니다.
- 심볼릭 링크 생성 시 원본 파일의 경로는 절대 경로를 사용하는 것이 좋습니다. 상대 경로를 사용하면 링크가 깨지기 쉽습니다.
- 예: `ln -s /absolute/path/to/file link_name` (권장)
- 예: `ln -s ../file link_name` (링크가 생성된 위치에 따라 동작이 달라질 수 있어 주의 필요)
하드 링크의 제약
하드 링크 사용 시 알아두어야 할 제약 사항입니다.
- 하드 링크는 동일한 파일 시스템 내에서만 생성할 수 있습니다.
- 하드 링크는 디렉토리에 생성할 수 없습니다.
원본 파일 삭제 시 동작
원본 파일이 삭제되었을 때 링크의 동작 방식입니다.
- 심볼릭 링크의 원본 파일이 삭제되면, 심볼릭 링크는 '깨진 링크(broken link)'가 되어 더 이상 원본 파일을 가리키지 못합니다.
- 하드 링크는 원본 파일이 삭제되어도 데이터는 남아있으며, 다른 하드 링크가 존재하는 한 파일 시스템에서 데이터가 제거되지 않습니다.