使用例子:
cmp -s sysfs-tty sysfs-ptp
echo $?
1
cmp -s sysfs-tty sysfs-tty
echo $?
0
说明: sysfs-tty, sysfs-ptp是文件名, echo $?会输出上一条命令的执行结果,1表示比较的两个文件内容不同, 0 表示比较的两个文件内容相同。 比较内容是文件的二进制内容。
基于此,可以在bash 脚本里,根据比较结果来做不同的动作:
cmp -s sysfs-tty sysfs-ptp
if [ “$?” -ne 0 ]; then
#如果不相同或比较失败,则重新拷贝等
else
#如果相同,则不做。。。
fi
cmp 命令说明:
Usage: cmp [OPTION]… FILE1 [FILE2 [SKIP1 [SKIP2]]]
Compare two files byte by byte.
-b –print-bytes Print differing bytes.
-i SKIP –ignore-initial=SKIP Skip the first SKIP bytes of input.
-i SKIP1:SKIP2 –ignore-initial=SKIP1:SKIP2
Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2.
-l –verbose Output byte numbers and values of all differing bytes.
-n LIMIT –bytes=LIMIT Compare at most LIMIT bytes.
-s –quiet –silent Output nothing; yield exit status only.
-v –version Output version info.
–help Output this help.
SKIP1 and SKIP2 are the number of bytes to skip in each file.
SKIP values may be followed by the following multiplicative suffixes:
kB 1000, K 1024, MB 1,000,000, M 1,048,576,
GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.
If a FILE is `-' or missing, read standard input.
Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.