2012-02-14 1 views
0

페이지의 경우 : 내가 에 뭔가를 넣어 경우UNIX는 : 디렉토리에 심볼릭 링크 디렉토리가 생성 될 때와하지

mkdir sym 
cd sym 
mkdir one 

//Create the symlink 
ln -s one two 

ls -l 
drwxr-xr-x 2 lola lola 4096 2012-02-14 07:58 one 
lrwxrwxrwx 1 lola lola 3 2012-02-14 07:58 two -> one 

지금, 나는 에 도달 콜드. 나는 두심볼릭 링크의 이름이고, 그것에 디렉토리 (즉, 두)이 생성 이해 무엇을 위해 [이 올바른입니다?].

질문 : 디렉토리입니까? 그 점은 이고일까요?

하지만 난 할 경우 :

(assuming a clean configuration) 
mkdir sym 
cd sym 
mkdir one 
mkdir two <--- notice the creation of two!! 

//Create the symlink 
ln -s one two 

drwxr-xr-x 2 lola lola 4096 2012-02-14 07:59 one 
lrwxrwxrwx 1 lola lola 3 2012-02-14 07:59 two 
but in two/ 
lrwxrwxrwx 1 lola lola 3 2012-02-14 07:59 one -> one 

내가 에 뭔가를 넣으면 내가 에 도달하지 수 있습니다. 나는 3 형태을 할 노력하고있어

SYNOPSIS 
    ln [OPTION]... [-T] TARGET LINK_NAME (1st form) 
    ln [OPTION]... TARGET     (2nd form) 
    ln [OPTION]... TARGET... DIRECTORY  (3rd form) 
    ln [OPTION]... -t DIRECTORY TARGET... (4th form) 

이입니다 :

그러나 man ln에서

다른 디렉토리에 한 디렉토리에서 심볼릭 링크을 만들 수 있습니다.

내 실수에 대해 알려주시겠습니까? 제 생각에 개념적이며 기술적 인 것 같습니다.

답변

2

첫 번째 예에서 "two"는 디렉토리가 아닙니다. 그것은 simlink입니다 (기본적으로 "나를 묻는 사람이"하나 "를 대신 보게되면 작은 레이블이됩니다.)

두 번째 경우 실제로는 3 번째 폼을 사용합니다. 그러나이 폼의 기능은"Make "두"는 디렉토리이기 때문에 ln 명령은 세 번째 형식으로 두 번째 예제를 인식합니다.

+0

하나의 dir에서 다른 dir로 심볼릭 링크를 만드는 방법을 알고 싶습니다. * 하나 *에 파일을 넣으면 * 2 *로 관리 할 수 ​​있습니다. ** symlink 전에 ** * one *과 * two *가 생성되었다고 가정합니다. – Kani

+0

"two"가 디렉토리 일 때 symlink가 될 수 없습니다. 따라서 "2"디렉토리를 제거한 다음 "2"라는 심볼릭 링크를 만들어야합니다. 심볼릭 링크에 디렉토리를 "변형"할 방법이 없습니다 "하나가 모두 있고 두 개가되어야하지만 두 개는 다른 것들을 포함 할 수도 있습니다"라고하는 것은 심볼릭 링크에서는 불가능합니다. 그렇게 할 수있는 몇 가지 파일 시스템이 있지만, 그 파일 시스템은 매우 어두운 바다입니다 ... – Claude

+0

그냥 명확히하기 위해 : 나는 디렉토리와 심볼릭 링크 모두를 만들 수있는 파일 시스템을 모른다 (나는 전혀 불가능하다고 생각한다). "one"과 "two"의 두 파일 모두에 결과가 나타나더라도 "two"에 파일 시스템을 마운트 할 수 있습니다. – Claude

0

심볼릭 링크는 디렉토리가 아니며, readlink () 시스템 호출은 심볼릭 링크 파일의 문자를 읽는다. "-> one"이 ls 디스플레이에서 나온다.

예를 들어 ls -l을 사용하려면 두 개가 "../one "두 개의 심볼릭 링크가 하나의 디렉토리 안에 있기 때문에, 그래서 그것을 올바르게 참조하려면 디렉토리를 찾으려면 "위로"가야합니다.