Files
為什麼指定 –remove-source-files 時 rsync 不利用 mv 命令?
假設我想在文件系統中移動一棵樹,例如
/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 需要結合不尋常的案例,才有機會將文件從源移動到目標,而不是複制和刪除。檢測可能的情況將需要額外的複雜性來處理很少發生的事情。