Filesystems
同一文件系統之間的 cp 是否比不同文件系統之間的速度更快?
一直在認真思考 cp 選項的 -x 的想法導致懷疑兩個相同 fs 之間的複制比兩個不同 fs 之間的複制更快。以及使用
cp --reflink=auto
或使用cp --u
哪一種更快,更高效請解釋,證明它是真的還是假的。
ObPOSIX:
cp
這裡討論的選項都不是標準的。
cp -x
不是在同一個文件系統中複製;它導致遞歸下降只考慮同一文件系統中的目錄和文件。這允許使用者執行,例如,cp -rx / /somewhereelse
備份根文件系統而不複製任何其他文件系統(包括
/proc
等)。/somewhereelse
可以在另一個文件系統上(在這種情況下應該是)。該
-x
選項適用於每個參數,因此cp -rx / /home /somewhereelse
將複製下可見的任何內容/
,並單獨複製下/home
,而不會跨越文件系統邊界;即使不在同一個文件系統上,/
它也可以工作。/home
就性能而言,任何減少要複製的數據量的選項都會提高整體操作的速度。因此
cp -u
,當複製到已經有(一些)源文件副本的目錄時,會更快,因為它不會複製任何具有相同時間戳或比相應源文件更新的文件。cp --reflink=auto
在任何可以使用 reflink 的地方都會更快,因為這樣可以避免完全複製數據塊。