coreutils 매뉴얼에서 배웠습니다.ln
-r
--relative
링크 위치를 기준으로 심볼릭 링크를 만듭니다.
예:
ln -srv /a/file /tmp ’/tmp/file’ -> ’../a/file’
상대 심볼릭 링크는 정식 포함 디렉터리와 정식 대상을 기반으로 생성됩니다. 즉, 이러한 파일 이름의 모든 기호 링크가 해결됩니다. 다음 예와 같이 상대 파일 이름 생성에 대한 더 큰 제어를 제공하는 161 페이지의 섹션 18.5 [실제 경로 호출]을 참조하십시오.
ln--relative() { test "$1" = --no-symlinks && { nosym=$1; shift; } target="$1"; test -d "$2" && link="$2/." || link="$2" rtarget="$(realpath $nosym -m "$target" \ --relative-to "$(dirname "$link")")" ln -s -v "$rtarget" "$link" }
ln--relative()
이 예도 같은 목적으로 사용됩니까 ln -sr
? 감사해요.
답변1
아니요, 쉘 기능은 ln--remote
대상 경로가 있는 상대 심볼릭 링크를 생성하는 방법을 제공합니다.~하지 않을 것이다해결된 심볼릭 링크기본적으로 ln -r
할 것이다.
더 많은 인수를 취하는 함수를 작성하는 방법을 보여줍니다.readpath
꼭 필요한 경우를 대비해심지어출력 파일 이름을 제어합니다.