Filesystems

比較(diff)完整目錄結構的最佳方法?

  • July 23, 2019

比較目錄結構的最佳方法是什麼?

我有一個使用rsync的備份實用程序。我想說明源和備份之間的確切差異(在文件大小和最後更改日期方面)。

就像是:

Local file                   Remote file                         Compare
/home/udi/1.txt (date)(size)   /home/udi/1.txt (date)(size)     EQUAL
/home/udi/2.txt (date)(size)   /home/udi/2.txt (date)(size)     DIFFERENT

當然,該工具可以是現成的,也可以是 python 腳本的想法。

非常感謝!

烏迪

您正在尋找的工具是rdiff。它的工作方式類似於結合 rsync 和 diff。它會創建一個更新檔文件,您可以比較或分發該更新檔文件。

有些人出於不同的原因想要比較文件系統,所以我將在這裡寫下我想要什麼以及我是如何做到的。

我想了:

  • 同一文件系統與其自身進行比較,即,快照進行更改快照比較
  • 添加或刪除哪些文件的列表,不關心內部文件更改。

我做了什麼:

第一個快照(before.sh腳本):

find / -xdev | sort > fs-before.txt

第二個快照(after.sh腳本):

find / -xdev | sort > fs-after.txt

比較它們(diff.sh腳本):

diff -daU 0 fs-before.txt fs-after.txt | grep -vE '^(@@|\+\+\+|---)'

好的部分是這使用了幾乎預設的系統二進製文件。可以通過傳遞find一個-exec回顯文件路徑的參數和之後的 MD5 來根據內容進行比較。

引用自:https://serverfault.com/questions/39534