Symbolic Link

강지현·2024년 11월 7일

Symbolic link란?

Symbolic Link(심볼릭 링크)는 파일 시스템에서 다른 파일이나 디렉토리를 가리키는 파일이다. 심볼릭 링크는 원본 파일의 위치를 저장하고 있고 심볼릭 링크를 통해 원본 파일에 접근할 수 있다. 심볼릭 링크는 Windows의 바로 가기 기능과 유사하다.

심볼릭 링크는 주로 파일이나 디렉토리를 재배치할 때 또는 여러 프로그램이나 스크립트가 동일한 파일에 접근해야 할 때 유용하다.

심볼릭 링크를 사용하는 방법은 주로 리눅스나 유닉스 기반의 시스템에서 ln 명령어를 사용한다. ln 명령어는 두 가지의 주요 옵션이 있다.

하드 링크를 생성하는 기본 동작과 -s 옵션을 사용하여 심볼릭 링크를 생성하는 방법이 있다.

심볼릭 링크 생성

심볼릭 링크를 생성하기 위한 기본 문법은 다음과 같다

ln -s [원본 파일/디렉토리 경로] [심볼릭 링크 경로]

여기서 -s 옵션은 심볼릭 링크를 의미한다. [원본 파일/디렉토리 경로] 는 심볼릭 링크가 가리킬 대상의 경로이며, [심볼릭 링크 경로] 는 생성될 심볼릭 링크의 위치와 이름을 지정한다.

예제

1. 파일에 대한 심볼릭 링크 생성

ln -s /path/to/example.txt /path/to/example_link.txt
  • 원본 파일 example.txt에 대한 심볼릭 링크 example_link.txt를 생성하고자 할 때이다.

2. 디렉토리에 대한 심볼릭 링크 생성

ln -s /path/to/example_dir /path/to/example_dir_link
  • 디렉토리 example_dir에 대한 심볼릭 링크 example_dir_link를 생성하고자 할 때이다.

3. 심볼릭 링크 확인

ls -l ~/link_to_original.txt
  • 심볼릭 링크를 확인하려면 ls -l 명령어를 사용한다. 심볼릭 링크는 화살표-> 로 표시된다.

4. 심볼릭 링크 제거

rm ~/link_to_original.txt
  • 심볼릭 링크를 제거하려면 rm 명령어를 사용한다. 심볼릭 링크를 제거해도 원본 파일에는 영향을 주지 않는다.

5. 심볼릭 링크 업데이트

rm ~/link_to_original.txt
ln -s /new/path/to/original.txt ~/link_to_original.txt
  • 심볼릭 링크를 업데이트하려면 기존 링크를 삭제한 후 새로운 링크를 생성하면 된다.

6. 심볼릭 링크를 사용하여 디렉터리 링크 생성

ln -s /home/user/original_directory ~/link_to_directory
  • 디렉터리에 대한 심볼릭 링크를 생성하는 방법도 동일하다.

  • ~/link_to_directory 를 통해 /home/user/original_directory 에 접근할 수 있다.

주의사항

  • 심볼릭 링크는 원본 파일이나 디렉토리를 가리키는 포인터와 같으므로, 원본 대상이 삭제되거나 이동되면 링크는 더 이상 유효하지 않게 된다.

  • 심볼릭 링크는 절대 경로 또는 상대 경로를 사용하여 생성할 수 있다.
    상대 경로를 사용할 경우, 심볼릭 링크가 생성된 위치를 기준으로 경로가 계산된다.

  • 파일 시스템의 다른 부분에 있는 파일이나 디렉토리에 대한 심볼릭 링크를 생성할 수 있으며, 이는 특히 파일을 공유하거나 다양한 위치에서 접근해야 할 때 유용하다.


다음과 같은 내용을 도전해봅시다.

1. cat 을 입력하면 ls 가 실행되게 만들어보기

  • 별칭(alias)를 사용하여 cat 명령어를 ls 명령어로 대체할 수 있다.

    • 일시적 설정
    alias cat='ls'
    • 영구적 설정
      이 설정을 영구적으로 유지하려면 홈 디렉토리의 셸 초기화 파일(예: .bashrc 또는 .bash_profile) 에 추가된다.
    echo 'alias cat="ls"' >> ~/.bashrc
    source ~/.bashrc

    그 후 cat 을 입력하면 ls 가 실행된다.

2. readfile 을 입력하면 cat 이 실행되게 만들기

profile
시작!!

0개의 댓글