簡體   English   中英

需要Linux cmd-line應用程序來比較二進制文件並在第一次不匹配時退出

[英]Need Linux cmd-line app to compare binary files and exit on 1st mis-match

是否有Linux命令行應用程序將比較兩個二進制文件並在第一次不匹配時退出?

cmp似乎沒有退出選擇權。

cmp沒有此選項 ,因為它總是在第一次不匹配時退出。

$ cmp -b /bin/ls /bin/sed
/bin/ls /bin/sed differ: byte 25, line 1 is 320 M-P 300 M-@

我想你可以使用3個工具:

  • cmp
  • diff
  • md5sum

對於二進制文件, cmp更好,對於文本文件, diff更好。對於二進制文件, diff僅報告它們是否不同。 diff也適用於目錄。

前兩個中的任何一個都可以默默地完成你需要的東西。 diff使用-q開關, cmp使用-s開關告訴你一個返回碼:如果兩個文件匹配1則為0,否則為1。

cmp還有一個很好的選擇,可以避免(有點)讀取整個文件(如果你有大文件,那就好了):如果你知道文件可能在前N行或N和M行之間有所不同(即:對於行N = 10和M = 20):

cmp file1 file2 10 20 

我在列表中添加了md5sum ,因為如果你每次編輯其中一個文件時都有機會計算MD5校驗和,那么你只能比較它以快速找到它們是否匹配。 在這種情況下,我假設你有很多文件要比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM