![`rsync`의 `--link-dest`는 절대 경로 이름만 사용합니까?](https://linux55.com/image/133466/%60rsync%60%EC%9D%98%20%60--link-dest%60%EB%8A%94%20%EC%A0%88%EB%8C%80%20%EA%B2%BD%EB%A1%9C%20%EC%9D%B4%EB%A6%84%EB%A7%8C%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
절대 경로 이름 과 상대 경로 이름이 작동하지 않는 --link-dest=DIR
이유 는 무엇입니까 ?rsync
DIR
DIR
내가 달릴 때
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/dest
dest2
내 추측이 맞다면 rsync
절대 경로만 사용하려면 어떻게 해야 합니까 --link-dest
?
Linux API의 모든 함수에 대해 경로 이름 인수를 사용하는 경우 경로 이름 인수가 절대 경로 이름이거나 상대 경로 이름일 수 있다는 것이 맞습니까?
감사해요.
답변1
인용하다rsync
맨페이지설명 --link-dest
:
만약에목차대상 디렉터리에 상대적인 상대 경로입니다.
따라서 대상 디렉터리에 상대적인 상대 경로를 사용할 수 있습니다.
"Linux API"(커널에서 제공하는 사용자 공간 API를 의미하는 것 같습니다)가 이와 어떤 관련이 있는지 잘 모르겠습니다. rsync
이는 Linux 전용 도구가 아닙니다. 그러나 경로를 허용하는 대부분의 호출은 절대 및 상대 경로 이름을 모두 사용할 수 있습니다. 후자의 경우 경로는 일반적으로 현재 디렉터리 또는 제공된 파일 설명자(호출에서 ...at
,예를 들어 openat
). (확인해보진 않았습니다모두전화 번호. )