如何比較目錄與二進位文件

如何比較目錄與二進位文件

我想將目錄與二進位檔案進行比較。實際上,我對文件之間的實際差異不感興趣,而是想知道是否存在差異(以及哪些文件不同)。以前我使用過meld,但它不能比較二進位。

什麼這樣的文件比較工具可以做到這一點?

筆記:它是圖形工具還是只有命令列並不重要。

答案1

這可以很容易地用 來完成diff。例如:

$ ls -l foo/
total 2132
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:13 ls

$ ls -l bar/
total 1124
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:14 ls

$ diff bar/ foo/
Only in foo/: bash2

在上面的範例中,foo/bar/目錄包含二進位文件,並且bash2僅以foo/.

因此,您可以運行一些簡單的操作,例如:

$ diff bar/ foo/ && echo "The directories' contents are identical"

這將顯示不同的文件(如果有),或列印“目錄內容相同”(如果有)。要比較子目錄及其可能包含的任何文件,請使用diff -r.將其與-q抑製文字檔案的輸出結合。

答案2

cmp您可以使用命令比較兩個文件

用法:

cmp file1 file2

它將給出位元組數差異和行號

答案3

完整的比較,顯示相同、不同以及僅在一個或另一個資料夾或子資料夾中:

diff -rqs bar/ foo/

(您將獲得每個文件的一些輸出,不需要“目錄相同”)

相關內容