`rsync` 的 `--link-dest` 是否只采用绝对路径名?

`rsync` 的 `--link-dest` 是否只采用绝对路径名?

是否只--link-dest=DIRrsync取绝对路径名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)。 (我没查过全部的电话。)

相关内容