知道两个二进制文件是否相同(除了时间戳)最简单的方法是什么(在Ubuntu Linux上使用图形工具或命令行)?我不需要提取差值。我只需要知道它们是否相同。
当前回答
我最喜欢的使用xxd十六进制转储从vim包:
1)使用vimdiff (vim的一部分)
#!/bin/bash
FILE1="$1"
FILE2="$2"
vimdiff <( xxd "$FILE1" ) <( xxd "$FILE2" )
2)使用diff
#!/bin/bash
FILE1=$1
FILE2=$2
diff -W 140 -y <( xxd $FILE1 ) <( xxd $FILE2 ) | colordiff | less -R -p ' \| '
其他回答
我最终使用hexdump将二进制文件转换为十六进制表示,然后在meld / kompare /任何其他diff工具中打开它们。我不像你,我要找的是文件中的差异。
hexdump tmp/Circle_24.png > tmp/hex1.txt
hexdump /tmp/Circle_24.png > tmp/hex2.txt
meld tmp/hex1.txt tmp/hex2.txt
我发现Visual Binary Diff是我正在寻找的,可用的:
Ubuntu: Sudo apt安装vbindiff Arch Linux: sudo pacman -S vbindiff Mac OS X通过MacPorts: 端口安装vbindiff Mac OS X通过Homebrew: 酿造安装vbindiff
我最喜欢的使用xxd十六进制转储从vim包:
1)使用vimdiff (vim的一部分)
#!/bin/bash
FILE1="$1"
FILE2="$2"
vimdiff <( xxd "$FILE1" ) <( xxd "$FILE2" )
2)使用diff
#!/bin/bash
FILE1=$1
FILE2=$2
diff -W 140 -y <( xxd $FILE1 ) <( xxd $FILE2 ) | colordiff | less -R -p ' \| '
带有以下选项的Diff将进行二进制比较,以检查文件是否完全不同,如果文件相同,则输出:
diff -qs {file1} {file2}
如果你在比较两个不同目录下同名的文件,你可以使用这种形式:
diff -qs {file1} --to-file={dir2}
OS X船长
你可以使用MD5哈希函数来检查两个文件是否相同,这样你就不能看到低层次的差异,但这是一个快速比较两个文件的方法。
md5 <filename1>
md5 <filename2>
如果两个MD5哈希值(命令回显)相同,则两个文件没有区别。
推荐文章
- 如何在Python中获得所有直接子目录
- 即使模板文件存在,Flask也会引发TemplateNotFound错误
- 将一个二进制的NodeJS Buffer转换为JavaScript的ArrayBuffer
- 如何在Ruby中创建文件
- __FILE__宏显示完整路径
- 如何从另一个文件A中删除文件B中出现的行?
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- 如何删除文件中的特定行?
- 使用ImageMagick“Diff”图像
- Git分支之间的视觉差异
- 使用Java重命名文件
- 如何从Python包内读取(静态)文件?
- 我怎么能显示线在公共(反向差异)?
- 为什么我得到“Pickle - EOFError: run out of input”读取一个空文件?
- 写字符串到文本文件,并确保它总是覆盖现有的内容。