이 예제의 구현은 "ln -sr"과 동일합니까?

이 예제의 구현은 "ln -sr"과 동일합니까?

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꼭 필요한 경우를 대비해심지어출력 파일 이름을 제어합니다.

관련 정보