是否只--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
)。 (我没查过全部的电话。)