`rsync`의 `--link-dest`는 절대 경로 이름만 사용합니까?

`rsync`의 `--link-dest`는 절대 경로 이름만 사용합니까?

절대 경로 이름 과 상대 경로 이름이 작동하지 않는 --link-dest=DIR이유 는 무엇입니까 ?rsyncDIRDIR

내가 달릴 때

rsync -a --delete --link-dest=dest my\ dir  dest2/
rsync -a --delete --link-dest=./dest my\ dir  dest2/

my\ dir소스 및 /또는 dest동일한 파일이 ./dest대상 디렉토리에 복사됩니다 dest2.

내가 달릴 때

rsync -a --delete --link-dest=/tmp/test/backup/dest my\ dir  dest2/

소스에 있는 동일한 파일 my\ dir과 대상 디렉토리에 /tmp/test/backup/dest 하드 링크됨/tmp/test/backup/destdest2


내 추측이 맞다면 rsync절대 경로만 사용하려면 어떻게 해야 합니까 --link-dest?

Linux API의 모든 함수에 대해 경로 이름 인수를 사용하는 경우 경로 이름 인수가 절대 경로 이름이거나 상대 경로 이름일 수 있다는 것이 맞습니까?

감사해요.

답변1

인용하다rsync맨페이지설명 --link-dest:

만약에목차대상 디렉터리에 상대적인 상대 경로입니다.

따라서 대상 디렉터리에 상대적인 상대 경로를 사용할 수 있습니다.

"Linux API"(커널에서 제공하는 사용자 공간 API를 의미하는 것 같습니다)가 이와 어떤 관련이 있는지 잘 모르겠습니다. rsync이는 Linux 전용 도구가 아닙니다. 그러나 경로를 허용하는 대부분의 호출은 절대 및 상대 경로 이름을 모두 사용할 수 있습니다. 후자의 경우 경로는 일반적으로 현재 디렉터리 또는 제공된 파일 설명자(호출에서 ...at,예를 들어 openat). (확인해보진 않았습니다모두전화 번호. )

관련 정보