Filesystems
比較(diff)完整目錄結構的最佳方法?
比較目錄結構的最佳方法是什麼?
我有一個使用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 來根據內容進行比較。