mv /a/b /c/d 的 rsync 等效指令是什麼?

mv /a/b /c/d 的 rsync 等效指令是什麼?

rsync/a/b/ /c/d/的等效指令是什麼mv,即將目錄樹從一個位置移動到另一個位置(可能位於另一個檔案系統上)?

也就是說,不僅僅是複製,而是從原始位置刪除檔案。我想使用的原因rsync是我希望能夠恢復部分移動並能夠限制頻寬使用。

答案1

此命令將同步從/a/b 到/c/d 的所有文件,並將保留權限、修改日期、符號鏈接,並將遞歸到目錄中(“-a”或“--archive”執行所有這些操作,它與使用“-rlptgoD”相同,它們是所有選項的單獨選項),-v 表示詳細信息,“--remove-source-files”將在源文件在目標上完全創建後將其刪除。

如果 /c/ 中的目錄 d 不存在,則會建立該目錄。

rsync -av --remove-source-files /a/b /c/d

如果您想移動到遠端伺服器,那麼這將同步到遠端伺服器路徑,「-z」將在傳輸過程中壓縮檔案資料。

rsync -avz --remove-source-files /a/b user@hostname_or_ip:/c/d

目錄不會被「--remove-source-files」刪除,因此您需要在 rsync 之後執行 rm -rf /a/b 來刪除 /a/b/ 內的所有目錄

在一行命令中,您可以像這樣把所有內容都放在一起

rsync -av --remove-source-files /a/b /c/d; if find /a/b/ -type f | read; then echo "Not all files were synced"; else rm -rf /a/b; fi

這將運行 rsync,然後檢查是否有任何檔案剩餘,以防止刪除資料夾(如果某些檔案未完全同步,因此未刪除),然後列印並非所有檔案都已同步,或刪除該資料夾(如果有)裡面沒有文件。

相關內容