Linux에서 심볼릭 링크(Symlink)를 만드는 방법


리눅스 에는 바로가기가 없지만 일반적으로 호출되는 심볼릭 링크(Symlink)가 있습니다. 그런데 심볼릭 링크란 정확히 무엇입니까? 그리고 어떻게 만드나요? 알아보겠습니다.

우분투 설치 에서 명령을 시험해 볼 예정이지만 구문은 모든 Linux 배포판 에서도 동일하게 작동합니다. 흥미롭게도 Mac PC에서도 심볼릭 링크를 생성할 수 있습니다. 입니다.

심볼릭 링크란 무엇입니까?

여러 위치에서 파일에 액세스할 수 있으려면 단순히 파일을 복사하는 것은 좋은 해결책이 아닙니다. 파일이 여러 개 있어서 변경 사항을 추적하기 어려워지는 것은 물론이고 디스크 공간도 낭비하고 있습니다.

GUI 기반 운영 체제에서는 바로가기를 만들어서 이 문제를 해결할 수 있습니다. CUI 기반 OS(예: 모든 Linux 배포판 )의 경우 대답은 심볼릭 링크입니다. Microsoft Windows도 어떤 상황 에서 심볼릭 링크를 활용할 수 있습니다.

심볼릭 링크 또는 심볼릭 링크는 완전히 다른 파일 시스템이나 파티션에 있더라도 다른 파일이나 디렉터리를 가리키는 파일일 뿐입니다. 심볼릭 링크를 열면 동일한 원본 파일에 액세스할 수 있으며 모든 변경 사항은 기본 파일에도 반영됩니다.

이것은 권한에도 적용됩니다. chmod 을 사용하여 심볼릭 링크 파일의 권한을 변경하면 실제로 대상 파일의 권한이 수정됩니다.

Symlink 유형

심볼릭 링크는 소프트 링크라고도 합니다. 이름에서 알 수 있듯이 Linux의 유일한 파일 연결 시스템 유형은 아닙니다. 하드 링크는 특정 시나리오에서 심볼릭 링크 대신 사용할 수 있지만 여러 가지 제한 사항이 있습니다.

먼저 하드 링크는 동일한 아이노드 을 가리키는 파일 이름일 뿐입니다. 이는 저장 및 액세스 속도 측면에서 매우 효율적이지만 동일한 파일 시스템 또는 파티션의 파일로 제한됩니다. 그리고 how folder access works in 리눅스 의 특이성으로 인해 디렉토리에 대한 하드 링크도 사용할 수 없습니다.

반면

소프트 링크 또는 심볼릭 링크는 데스크톱 바로가기와 비슷합니다. 각 소프트 링크는 본질적으로 원본 데이터에 직접 연결되지 않고 원본 데이터를 가리키는 작은 파일입니다. 이는 소프트 링크가 아무런 제한 없이 다른 파티션과 파일 시스템의 파일과 디렉터리를 쉽게 가리킬 수 있음을 의미합니다.

하드 링크와 소프트 링크 – 어떤 유형을 사용할 것인가?.

소프트 링크는 아무런 제한 없이 여러 파일 시스템의 파일과 디렉터리 모두에서 사용할 수 있기 때문에 가장 다양한 형태의 링크입니다. 그런데 왜 우리는 하드 링크를 갖고 있는 걸까요? 심볼릭 링크에 비해 이점이 있나요?

글쎄, 서류상으로는 하드 링크가 더 효율적입니다. 동일한 inode를 사용하기 때문에 추가 디스크 공간을 차지하지 않으며 소프트 링크보다 훨씬 빠르게 액세스할 수 있습니다. 이것이 바로 많은 시스템 관리자가 가능할 때마다 하드 링크 사용을 권장하는 이유입니다.

그러나 기호 링크 사용의 단점은 미미합니다. 특히 최신 컴퓨터는 몇 킬로바이트의 추가 저장 공간에 크게 신경 쓰지 않으며 시스템을 수백만 개의 소프트 링크로 채우지 않는 한 추가 파일 크기는 거의 중요하지 않습니다.

심볼릭 링크 생성

심볼릭 링크(또는 일반적인 파일 링크)는 ln 명령을 사용하여 생성됩니다. 기본적으로 이 명령은 하드 링크를 생성합니다. 심볼릭 링크를 생성하려면 ln 명령에 -s 플래그를 추가해야 합니다.

구문은 충분히 간단합니다. ln 명령은 링크할 파일(또는 폴더)의 경로와 생성할 링크 파일의 경로라는 두 가지 매개변수를 사용합니다.

이렇게:

ln -s user_names.txt 이름

이렇게 하면 user_names 텍스트 파일에 연결된 names라는 심볼릭 링크가 생성됩니다. 심볼릭 링크가 실제로 생성되었는지 확인하려면 ls 명령을 사용하면 됩니다.

보시다시피 Ubuntu는 진한 파란색으로 표시된 디렉토리와 연한 파란색(실제로 청록색)으로 표시된 심볼릭 링크를 사용하여 다양한 파일 카테고리에 대해 다양한 색상을 표시합니다.

동일한 구문을 사용하여 폴더에 대한 심볼릭 링크를 만들 수도 있습니다.

ln -s 예시 example_folder

다른 디렉터리에 있는 파일과 폴더에 대한 심볼릭 링크를 만들려면 전체 경로를 사용하면 됩니다. 예:

ln -s example/example3.txt distance_example

Symlink의 한계

심볼릭 링크는 복사본을 만들지 않고도 시스템 전체에 걸쳐 파일을 연결하는 훌륭한 방법이지만 고유한 제한 사항이 있습니다. 예, 소프트 링크가 하드 링크보다 덜 제한적이라고 해도 여전히 염두에 두어야 할 몇 가지 사항이 있습니다..

첫째, ln 명령은 생성된 링크를 실제로 확인하지 않습니다. 이는 실제로 존재하지 않는 파일 이름을 입력할 수 있으며 오류가 발생하지 않는다는 것을 의미합니다. 링크를 확인하는 유일한 방법은 링크를 사용해 보고 올바른 파일로 연결되는지 확인하는 것입니다.

둘째, 심볼릭 링크의 권한에 액세스하거나 변경하면 원본 파일의 속성이 변경되지만 파일 삭제에는 동일하지 않습니다. 연결된 파일이나 디렉토리에 영향을 주지 않고 안전하게 심볼릭 링크 제거 할 수 있습니다.

Linux에서 Symlink 만들기

심볼릭 링크를 생성하기 위해 터미널을 사용할 때 가장 큰 어려움은 다양한 디렉토리에 분산되어 있는 중요한 파일에 액세스하기 어렵다는 것입니다. 현명한 해결책은 바탕화면 바로가기처럼 홈 디렉터리 자체에서 해당 파일에 대한 심볼릭 링크를 만드는 것입니다.

하드 링크와 달리 심볼릭 링크는 다른 파티션과 파일 시스템에 있는 디렉터리나 파일에 연결하는 경우에도 아무런 제한 없이 쉽게 만들 수 있습니다. 이는 또한 심볼릭 링크가 존재하지 않는 파일을 가리킬 수 있다는 것을 의미합니다. 파일이 존재하는지 확인하려면 링크에 액세스해야 합니다.

.

관련 게시물:


10.05.2023