Rsync
rsync
的 --link-dest
是否只採用絕對路徑名?
是否只使用絕對路徑名 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\ 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中的所有函式是否正確,如果它們採用路徑名參數,它們的路徑名參數可以是絕對路徑名和相對路徑名嗎?
謝謝。
如果DIR是相對路徑,則它是相對於目標目錄的。
因此,您可以使用相對於目標目錄的相對路徑。
我不確定“Linux API”(我猜你指的是核心提供的使用者空間 API)與此有什麼關係,
rsync
它不是特定於 Linux 的工具。但是,大多數(如果不是全部)接受路徑的呼叫可以採用絕對路徑名和相對路徑名;在後一種情況下,路徑通常相對於目前目錄或提供的文件描述符(在...at
呼叫中,例如openat
)。(我還沒有檢查所有的電話。)