티스토리 뷰

Linux

symbolic link

덕쑤 2015. 5. 21. 10:41

출처 : http://opennote46.tistory.com/120


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

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

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

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

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

긴 디렉터리 보기 옵션 (-l)과 함께 POSIX의 디렉터리를 나열하는 프로그램 ls을 사용하면 심볼릭 링크가 이름 뒤의 화살표를 통해 가리키고 있음을 볼 수 있다. (아래의 예제 참고) 디렉터리를 가리키는 심볼릭 링크의 디렉터리 나열을 요청하면 링크 그 자체만 표시된다. 링크된 디레터리를 나열하려면 경로 뒤에 / 구분 문자를 추가하여야 한다.

 $ mkdir -p /tmp/one/two
 $ echo "test_a" >/tmp/one/two/a
 $ echo "test_b" >/tmp/one/two/b
 $ cd /tmp/one/two
 $ ls -l
 -rw-r--r-- 1 user group 7 Jan 01 10:01 a
 -rw-r--r-- 1 user group 7 Jan 01 10:01 b
 
 $ cd /tmp
 $ ln -s /tmp/one/two three
 $ ls -l /tmp/three
 lrwxrwxrwx 1 user group 12 Jul 22 10:02 /tmp/three -> /tmp/one/two
 $ ls -l /tmp/three/
 -rw-r--r-- 1 user group 7 Jan 01 10:01 a
 -rw-r--r-- 1 user group 7 Jan 01 10:01 b
 
 $ cd three
 $ ls -l
 -rw-r--r-- 1 user group 7 Jan 01 10:01 a
 -rw-r--r-- 1 user group 7 Jan 01 10:01 b
 $ cat a
 test_a
 $ cat /tmp/one/two/a
 test_a
 $ echo "test_c" >/tmp/one/two/a
 $ cat /tmp/one/two/a
 test_c
 $ cat /tmp/three/a
 test_c


'Linux' 카테고리의 다른 글

리눅스 삭제된 파일 복구  (0) 2015.06.02
Linux I/O 스케줄러의 종류 와 운영환경에 따른 최적화 방법  (1) 2015.05.28
gcc 업데이트  (0) 2015.05.20
Kickstart file analysis  (0) 2015.03.31
리눅스 기본 port number  (0) 2015.03.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함