본문으로 이동

심볼릭 링크

위키백과, 우리 모두의 백과사전.
Ykhwong (토론 | 기여)님의 2013년 12월 24일 (화) 11:50 판 (→‎비교)

컴퓨팅에서 심볼릭 링크(symbolic link) 또는 기호화된 링크는 절대 경로 또는 상대 경로의 형태로 된 다른 파일이나 디렉터리에 대한 참조를 포함하고 있는 특별한 종류의 파일이다.[1] 심볼릭 링크는 이미 1978년까지 DEC와 데이터 제너럴의 RDOS의 미니 컴퓨터 운영 체제에 존재했다. 오늘날 이들은 FreeBSD, GNU/리눅스, OS X과 같은 대부분의 유닉스 계열 운영 체제POSIX 운영 체제 표준과 윈도 비스타, 윈도 7, 또 바로 가기 파일의 형태로서 윈도 2000, 윈도 XP에 이르는 윈도 운영 체제를 통해 지원되고 있다.

심볼릭 링크는 대부분의 작업에 투명하게 동작한다. 심볼릭 링크로 이름이 지정된 파일에 읽고 쓰는 프로그램들은 마치 운영 체제가 직접 대상 파일에 작용하는 것처럼 수행한다. 그러나 심볼릭 링크들을 특별하게 다루어야 하는 프로그램들(이를테면 백업 유틸리티)은 이들을 직접 식별하고 조작할 수도 있다.

심볼릭 링크는 다른 파일이나 디렉터리에 대한 경로로서 운영 체제가 자동으로 해석하고 추적하는 텍스트 문자열을 포함한다. 이러한 다른 파일이나 디렉터리를 대상(target)으로 부른다. 심볼릭 링크는 대상으로부터 독립적으로 존재하는 두 번째 파일이다. 심볼릭 링크가 삭제되면 대상은 영향을 받지 않는다. 심볼릭 링크가 대상을 지시하면 나중에 대상이 이동되거나 이름이 바뀌거나 지워지더라도 심볼릭 링크는 자동으로 업데이트되거나 삭제되지는 않지만 지속적으로 오래된 대상(현재는 존재하지 않는 위치나 파일)을 가리킨 채로 존재한다. 이동되었거나 존재하지 않는 대상을 가리키는 심볼릭 링크들은 broken, orphaned, dead, dangling 등의 용어로 불리기도 한다.

심볼릭 링크는 하드 링크와는 차이가 있다. 하드 링크는 다른 볼륨이나 파일 시스템 상의 경로를 연결하지 않지만 심볼릭 링크는 링크와 대상이 존재하는 볼륨의 어느 파일이나 디렉터리라도 가리킬 수 있다. 하드 링크는 무조건 기존의 파일만을 가리키는 반면 심볼릭 링크는 어느 것을 가리키지 않는 임의의 경로를 포함할 수도 있다.

파일 시스템 계층을 재정렬하려는 노력에 따라 일부 유닉스와 리눅스 배포판들은 심볼릭 링크를 널리 사용한다. 이는 변종의 컨텍스트 의존 심볼릭 링크들과 같은 일부 매커니즘을 통해 수행할 수 있다. 또, 더 직관적이거나 응용 프로그램에 특화된 디렉터리 트리를 만들고, 핵심이 되는 시스템 명령 및 유틸리티들을 다시 설계하는 일 없이 시스템을 다시 정리하는 기회를 제공한다.

POSIX 및 유닉스 계열 운영 체제

POSIX 호환 운영 체제에서 심볼릭 링크는 symlink 시스템 호출을 사용하여 만든다. ln이라는 셸 명령은 보통 하드 링크를 만들어내는 link라는 시스템 호출을 사용한다. ln -s 플래그가 지정되면 symlink() 시스템 호출이 대신 사용되면서 심볼릭 링크를 만들어낸다. 심링크는 U.C. 버클리의 4.2BSD 유닉스에 도입되었다.

다음의 명령은 명령 줄 인터페이스 (셸)에서 심볼릭 링크를 만들어낸다:

ln -s [대상 경로] [링크 경로]

대상 경로는 심볼릭 링크가 가리키는 상대 경로나 절대 경로이다. 일반적으로 대상은 존재하지만 심볼릭 링크는 존재하지 않는 대상을 가리키는데 사용할 수도 있다. 링크 경로는 심볼릭 링크의 경로이다.

심볼릭 링크를 만들면 이 링크는 대상에 대한 별명(alias)으로 취급되는 것이 보통이다. cp, rm 따위의 시스템 관리 명령들은 심볼릭 링크에 사용할 수 있다. 읽고 쓰는 명령을 사용하면 대상 파일의 내용에 접근하게 된다.

비교

속성/동작 심볼릭 링크 정션 하드 링크
심볼릭 링크/정션/하드 링크 삭제 시 대상 항목은 변경되지 않은 채 유지됨. 대상 항목이 삭제됨. (특별한 도구 사용 시 제외) 참조 카운터 수 감소. 0에 도달하면 대상 항목은 삭제됨.
대상 이동 시 심볼릭 링크가 유효하지 않게 됨. 정션이 유효하지 않게 됨. 하드 링크는 유효한 채로 유지됨.
상대 경로 허용 허용 안 함 (저장 시 절대 경로가 됨) 해당되지 않음
드라이브 요구 어느 드라이브에서나 가능 어느 드라이브에서나 가능 동일한 드라이브에서만 가능
대상 읽기 가능 가능 같은 드라이브에서만 (서술자에 저장된 링크)
윈도 파일 윈도 비스타/2008 이후
(관리자 권한 필요)
아니오
폴더 아니오
유닉스 파일 해당되지 않음
디렉터리 해당되지 않음 아니오

같이 보기

참조

바깥 고리

  • (영어) Q & A: The difference between hard and soft links as applied to Linux
  • (영어) Junction: maintain NTFS junction points (for Windows 2000 and above)
  • (영어) FSUtil Hardlink: Microsoft Technet page on using the command-line tool FSUtil to create hardlinks (for Windows 2000 and above)
  • (영어) Link Shell Extension: Windows Explorer context menu, overlay icons and property sheet handler to maintain hardlinks, NTFS junction points, symbolic links etc.
이 문서에는 GFDL 라이선스로 배포된 자유 온라인 컴퓨팅 사전(FOLDOC)의 내용을 기초로 작성된 내용이 포함되어 있습니다.