Files

為什麼指定 –remove-source-files 時 rsync 不利用 mv 命令?

  • August 27, 2014

假設我想在文件系統中移動一棵樹,例如

/path/to/a
 a.txt
 b.txt

到另一個位置rsync(3.0.9 協議版本 30),例如rsync -a --remove-source-files /path/to/a/ /path/to/b/,為什麼rsync沒有發現 /path/to/a 和 /path/to/b 在保存文件系統上(rsync絕對有能力這樣做,否則有不會有任何-x爭論 - 必須在沒有指定-x) 的情況下提供該功能並使用mv可能會從文件系統級別操作中受益的命令,例如更改連結和 inode 而不是讀取、寫入和刪除樹中的所有文件?

編輯 1:mv我在 ext4 和 reiserfs 文件系統上經歷了讀寫而不是使用。我不是在尋找諸如“它根本沒有,歡迎更新檔”之類的輸入,而是是否有一些關於設計或案例的明確且可能記錄或討論的決定(例如 Gilles 的回答)。

Rsync 經常用於通過網路連結複製文件。它還用於將文件複製到備份媒體。刪除源文件是 rsync 的一種相當少見的用法。保留元數據通常是請求但可選的。因此,rsync 需要結合不尋常的案例,才有機會將文件從源移動到目標,而不是複制和刪除。檢測可能的情況將需要額外的複雜性來處理很少發生的事情。

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