我想複製一個home
包含幾 GB 資料和常用設定檔的 Linux 使用者目錄進行備份。來源目錄和備份目錄應該完全具有相同的內容。作業系統是Lubuntu。
此目錄包含隱藏檔案和子目錄。經過一番谷歌搜尋後我發現
cp -r /source-directory /backup-directory
是適當的命令。
來源目錄檔案系統是ext4,目標目錄是NTFS。複製後,diff -qr /source-directory /backup-directory
沒有給出任何輸出(所以我認為沒有差異)。但是du
、 或du -b
or du --apparent-size
all 總是為來源目錄和備份目錄提供不同的輸出。
為什麼?是指令錯誤還是用法du
錯誤?
答案1
當新增檔案和子目錄時,根據需要將附加區塊指派給目錄。隨後刪除這些檔案和子目錄不會導致處理現在為空/可重複使用的分配。因此,複製操作的目標目錄比其來源目錄稍小是很常見的。
diff
如果您想要熱模糊確認,您可以遞歸來源目錄和目標目錄來確認所有內容都已複製。
順便說一句,rsync
它也是複製結構的理想選擇:
rsync -avz /source-directory/ /backup-directory
來源目錄上的尾部斜線表示來源目錄名稱不作為其第一個子目錄包含在備份目錄中。
這些-avz
選項指示rsync
在存檔模式下複製以保留權限、所有權、符號連結等,在傳輸過程中使用壓縮並詳細報告操作。
答案2
不同的檔案系統在為檔案分配空間時可能有不同的開銷。此外,目錄條目的儲存方式也可能有所不同。可惜你不告訴什麼不同的輸出是。