Shell命令确定文件`foo`是否是文件`bar`的截断

smi*_*lli 1 bash shell diff truncate

说我有两个文件,foobar.如果我想验证他们有相同的内容,我可以运行:

diff -q foo bar
Run Code Online (Sandbox Code Playgroud)

并检查退出代码是否为零.同样,我可以为具有不同内容的文件执行相同的操作,并查找非零退出状态.

现在,假设在我们的情况下文件foo是500字节,文件bar是几兆字节 - 但前500字节bar与整个文件相同foo.是否有一个简单的命令来验证这种情况,最好不解析大差异的输出?

如果文件是二进制而不是文本,它会改变什么吗?

Win*_*ute 6

cmp 似乎为此做了:

cmp -n $(stat -c %s file1) file1 file2
Run Code Online (Sandbox Code Playgroud)

$(stat -c %s file1)是的大小file1,cmp -n 123 file1 file2第一123个字节的比较file1file2.