使用例子: 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.