상대 경로 이름을 사용하여 소프트 링크를 만드는 방법이 있습니까? (집에 상대적이거나 절대적인 것이 아님)

상대 경로 이름을 사용하여 소프트 링크를 만드는 방법이 있습니까? (집에 상대적이거나 절대적인 것이 아님)

pwd를 기준으로 사용해 보았지만 작동하지 않습니다.

내 현재 비밀번호가 대상 경로 및 원래 경로(링크를 생성해야 하는 위치)와 다릅니다.

홈 디렉토리를 모르므로 홈 상대 경로 이름을 사용할 수 없습니다. 절대 경로 이름은 필요하지 않습니다.

상대 경로 이름을 사용하여 소프트 링크를 어떻게 생성합니까?

답변1

상대 심볼릭 링크는 상위 디렉터리를 기준으로 하며 프로세스의 현재 디렉터리나 사용자의 홈 디렉터리와는 관련이 없습니다.

예를 들어, 가 /some/dir/link에 대한 심볼릭 링크라면 현재 또는 홈 디렉터리가 무엇인지에 관계없이 if 자체는 심볼릭 링크가 아닌 에 대한 ../foo/bar심볼릭 링크입니다 ./some/dir/../foo/bar/some/foo/bar/some/dir

bin/ls현재 디렉토리와 관련된 파일(예: 현재 디렉토리의 파일 ) 에 대한 새 심볼릭 링크를 생성하려면 /home/stephanePOSIX와 같은 쉘 또는 에서 다음을 수행할 수 있습니다 fish.

ln -s -- "$PWD/bin/ls" /some/dir/link

(에 대한) 절대 심볼릭 링크를 생성합니다 /home/stephane/bin/ls. 상대 심볼릭 링크를 만들려면 다음이 필요합니다.

ln -s ../../home/stephane/bin/ls /some/dir/link

/some( 그리고 /some/dir그 자체가 심볼릭 링크가 아니라고 가정 )

GNU에는 해당 경로를 계산하는 데 도움이 되는 옵션이 ln있습니다 -r.

ln -rs bin/ls /some/dir/link

(에 대한 동일한 심볼릭 링크를 생성합니다 ../../home/stephane/bin/ls).

답변2

상대 경로를 사용하여 심볼릭 링크를 수행할 수 있습니다

예를 들어 ( 현재 작업 디렉토리와 관련된 bb폴더 에서 심볼릭 링크를 생성하려고 합니다 .../../bbmylink

ln -s ../../bb/ mylink

$ ls -lsa mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 15:51 mylink -> ../../bb/

mylink가 관련 폴더에 있는 또 다른 예pwd

mkdir ../../tst
$ ln -s ../../bb/ ../../tst/mylink
$ ls -lsa ../../tst/mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 16:08 ../../tst/mylink -> ../../bb/

관련 정보