Bash
cp還是rsync,cp真的值得嗎?
我希望這不算是一個沒有真正答案的問題,因為我似乎找不到在幾乎所有情況下都使用
cp(1)
over的充分理由。rsync(1)
通常應該贊成rsync
嗎cp
?他們的使用有什麼好的指導方針嗎?
rsync
:傳輸差異,可以使用壓縮,可以遠端(安全)使用,即使在傳輸單個大文件期間也可以在中斷的情況下重新啟動。'cp
: 也許它只是使用更簡單?它比 rsync 快嗎?
cp
是 coreutils 的一部分,因此它無處不在。此外,它主要設計用於在一台電腦內復製文件。
rsync
不是 coreutils 的一部分,即使在預設環境中也不存在。此外,它主要設計用於通過網路傳輸文件。與 coreutils 相比,它還rsync
具有更多的依賴項,但是這種差異並沒有太大意義。PS:順便說一下,嵌入式系統的CPU使用率仍然很重要。
您不想
rsync
為每個複制操作使用的主要原因是因為rsync
有計算成本。在數據傳輸實際開始之前,rsync
掃描所有文件。然後在每個文件之前進行比較。即使在 2012 年可以使用快速 CPU,這種成本也不是微不足道的。我一直在進行這些類型的傳輸,並且在相當大的伺服器上,一旦您開始處理大量數據,成本可能會很耗時。我不是說不要使用
rsync
,一點也不,rsync
隨時使用可以節省一些傳輸時間。只是不要使用rsync
whencp
可以完成同樣的事情。我通常做的,首先使用正常的複制方法將數據帶過來。然後
rsync
進行後續更改,也就是可以利用這些差異的時候。