Rsync

rsync--link-dest 是否只採用絕對路徑名?

  • May 16, 2018

是否只使用絕對路徑名 for --link-dest=DIR,而相對路徑名 for不起作用?rsync``DIR``DIR

當我跑

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

源中的相同文件my\ dirdest或被./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中的所有函式是否正確,如果它們採用路徑名參數,它們的路徑名參數可以是絕對路徑名和相對路徑名嗎?

謝謝。

引用手冊rsync描述--link-dest

如果DIR是相對路徑,則它是相對於目標目錄的。

因此,您可以使用相對於目標目錄的相對路徑。

我不確定“Linux API”(我猜你指的是核心提供的使用者空間 API)與此有什麼關係,rsync它不是特定於 Linux 的工具。但是,大多數(如果不是全部)接受路徑的呼叫可以採用絕對路徑名和相對路徑名;在後一種情況下,路徑通常相對於目前目錄或提供的文件描述符(在...at呼叫中,例如 openat)。(我還沒有檢查所有的電話。)

引用自:https://unix.stackexchange.com/questions/444066