Cp

cp vs. mv:哪種操作更高效?

  • April 19, 2016

我發現自己將相當大量的數據(20+ GB)從一個目錄樹移動到另一個目錄樹。通常它們在同一個文件系統上,但有時它們在不同的文件系統上。我這樣做cp只是為了以防萬一。複製完成後,我會在驗證數據已正確複製後刪除原始數據。有時我只是在mv之後懶得清理原始數據時才這樣做。但是,我想知道,從純粹的技術角度來看,哪種操作更有效?為什麼?

從技術上講,mv當源和目標位於不同的文件系統上時,它不是原子的,它實際上是cp+ unlink()。所以首先mv會復製文件,然後呼叫unlink()從目錄的條目列表中刪除文件。

所以在這種情況下,AFAIU是你cp然後rmunlink())還是mv直接使用完全是你個人的喜好。

mv在同一個文件系統中 -ing 時,您應該在同一個文件系統中使用mv它的原子(呼叫rename()),這樣成本就更少了。

感謝@muru 和@psusi 指出與FS 相關的行為。

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