Command-Line

rsync 雙向完成,但目錄大小不同。怎麼可能?

  • January 11, 2020

我想同步 2 個目錄 ( /src& /dst) 以鏡像它們中的所有文件。

這是一個步驟:

  1. sudo rsync -vaP --stats /src /dst-> 完成沒有錯誤
  2. sudo rsync -vaP --stats /dst /src-> 完成沒有錯誤
  3. diff -rq /src /dst-> 不顯示任何差異。
  4. du -s /src && du -s /dst顯示不同的尺寸(10% 差異)。

怎麼可能?我完全陷入了這個困境。

  • -S不使用該標誌時,稀疏文件可能會在複製時展開。(會使目的地佔用更多空間)
  • -H當不使用該標誌時,樹中的硬連結可以擴展為複制時的單獨文件。(會使目的地佔用更多空間)
  • 文件系統可能有不同的分配大小。一個單字節文件在一個文件系統上可能會佔用 512 字節的磁碟分配空間,而在另一個文件系統上可能會佔用 4096 字節(甚至更多)。如果你的樹有很多小文件,這將產生很大的不同。(目的地可能會佔用更多或更少的空間,具體取決於具體情況)
  • 目錄可能比在某些文件系統上保存目前內容所需的要大得多。複製內容時,目標目錄將變小。通常沒什麼大不了的,但一些病態目錄可能是巨大的。(將使目的地佔用更少的空間)

文件系統也可能具有不同的壓縮/重複數據刪除/冗餘設置,從而導致對數據的不同儲存要求。但這不太常見,即使存在差異,也並不總是可以通過du.

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