cmp命令用于判断两个文件是否相同
001、
(base) root@PC1:/home/test2# ls (base) root@PC1:/home/test2# seq 5 > a.txt; seq 3 > b.txt; seq 5 > c.txt ## 3个测试文件 (base) root@PC1:/home/test2# ls a.txt b.txt c.txt (base) root@PC1:/home/test2# cat a.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cat b.txt 1 2 3 (base) root@PC1:/home/test2# cat c.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cmp a.txt b.txt ## a。txt和b。txt不同 cmp: EOF on b.txt after byte 6, line 3 (base) root@PC1:/home/test2# cmp a.txt c.txt ## 如果相同,则不会输出任何内容
-s选项静默输出:
(base) root@PC1:/home/test2# ls a.txt b.txt c.txt (base) root@PC1:/home/test2# cat a.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cat b.txt 1 2 3 (base) root@PC1:/home/test2# cmp a.txt b.txt cmp: EOF on b.txt after byte 6, line 3 (base) root@PC1:/home/test2# cmp -s a.txt b.txt ## 静默模式
0-03、结合if 条件判断
(base) root@PC1:/home/test2# ls a.txt b.txt c.txt (base) root@PC1:/home/test2# cat a.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cat b.txt 1 2 3 (base) root@PC1:/home/test2# cat c.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cmp -s a.txt b.txt (base) root@PC1:/home/test2# echo $? ## 静默输出, 判断为假 1 (base) root@PC1:/home/test2# cmp -s a.txt c.txt ## 静默输出 (base) root@PC1:/home/test2# echo $? ## 判断为真 0
区别:diff
(base) root@PC1:/home/test2# ls a.txt b.txt c.txt (base) root@PC1:/home/test2# cat a.txt 1 2 3 4 5 (base) root@PC1:/home/test2# cat b.txt 1 2 3 (base) root@PC1:/home/test2# cat c.txt 1 2 3 4 5 (base) root@PC1:/home/test2# diff a.txt b.txt 4,5d3 < 4 < 5 (base) root@PC1:/home/test2# echo $? ## 判断为假 1 (base) root@PC1:/home/test2# diff a.txt c.txt (base) root@PC1:/home/test2# echo $? ## 判断为真 0