Filesystems

同一文件系統之間的 cp 是否比不同文件系統之間的速度更快?

  • February 27, 2021

一直在認真思考 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 的地方都會更快,因為這樣可以避免完全複製數據塊。

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