linux 中 cmp命令

 

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

 

posted @ 2022-08-11 14:10  小鲨鱼2018  阅读(314)  评论(0编辑  收藏  举报