
我想將目錄與二進位檔案進行比較。實際上,我對文件之間的實際差異不感興趣,而是想知道是否存在差異(以及哪些文件不同)。以前我使用過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/
(您將獲得每個文件的一些輸出,不需要“目錄相同”)