Cp
cp vs. mv:哪種操作更高效?
我發現自己將相當大量的數據(20+ GB)從一個目錄樹移動到另一個目錄樹。通常它們在同一個文件系統上,但有時它們在不同的文件系統上。我這樣做
cp
只是為了以防萬一。複製完成後,我會在驗證數據已正確複製後刪除原始數據。有時我只是在mv
之後懶得清理原始數據時才這樣做。但是,我想知道,從純粹的技術角度來看,哪種操作更有效?為什麼?
從技術上講,
mv
當源和目標位於不同的文件系統上時,它不是原子的,它實際上是cp
+unlink()
。所以首先mv
會復製文件,然後呼叫unlink()
從目錄的條目列表中刪除文件。所以在這種情況下,AFAIU是你
cp
然後rm
(unlink()
)還是mv
直接使用完全是你個人的喜好。而
mv
在同一個文件系統中 -ing 時,您應該在同一個文件系統中使用mv
它的原子(呼叫rename()
),這樣成本就更少了。感謝@muru 和@psusi 指出與FS 相關的行為。