文章目录
- diff命令
- 基本用法
- 选项
- 示例
- vimdiff命令
- 命令格式
- 选项说明
- 常用操作
diff命令
diff
命令是一个文本比较工具,用于比较两个文件的内容,它会逐行比较两个文件的内容并输出它们之间的差异。下面是diff
命令的常用选项和用法:
基本用法
比较两个文件的内容:
diff file1 file2
在输出的信息中:
<
表示第一个文件中存在但第二个文件中不存在的行>
表示第二个文件中存在但第一个文件中不存在的行c
表示两个文件中存在差异的行!
表示两个文件中存在差异的行,但是无法比较
选项
-r
或--recursive
:递归比较目录下的所有文件-a
或--text
:将二进制文件视为文本文件进行比较-i
或--ignore-case
:忽略大小写进行比较-w
或--ignore-all-space
:忽略所有空格字符进行比较-B
或--ignore-blank-lines
:忽略空白行进行比较-u
或--unified
:输出统一格式的差异信息-q
或--brief
:仅输出文件是否不同的信息,不输出差异内容-s
或--report-identical-files
:当文件相同时也输出信息
示例
范例文件
[root@localhost ~]# cat csq.txt
I like LINUX
I don't speak English, which makes my studies very difficult
but it doesn't affect my love for LINUX
[root@localhost ~]# cat zhw.txt
I like Linux
I can speak English, which makes my studies very difficult
but it doesn't affect my love for Linux
- 比较两个文件的内容:
[root@localhost ~]# diff csq.txt zhw.txt
1,3c1,3
< I like LINUX
< I don't speak English, which makes my studies very difficult
< but it doesn't affect my love for LINUX
---
> I like Linux
> I can speak English, which makes my studies very difficult
> but it doesn't affect my love for Linux
- 比较两个目录下的所有文件:
[root@localhost ~]# diff -r /home/ftptest/ /home/zhw/
只在 /home/zhw/ 存在:.bash_history
只在 /home/ftptest/ 存在:hosts
只在 /home/ftptest/ 存在:sysctl.conf
只在 /home/ftptest/ 存在:test.txt
- 忽略大小写进行比较:
[root@localhost ~]# diff -i zhw.txt csq.txt
2c2
< I can speak English, which makes my studies very difficult
---
> I don't speak English, which makes my studies very difficult
- 输出统一格式的差异信息:
[root@localhost ~]# diff -u csq.txt zhw.txt
--- csq.txt 2023-05-15 08:52:47.487039081 +0800
+++ zhw.txt 2023-05-15 08:53:33.503040150 +0800
@@ -1,3 +1,3 @@
-I like LINUX
-I don't speak English, which makes my studies very difficult
-but it doesn't affect my love for LINUX
+I like Linux
+I can speak English, which makes my studies very difficult
+but it doesn't affect my love for Linux
- 仅输出文件是否不同的信息,不输出差异内容:
[root@localhost ~]# diff -q csq.txt zhw.txt
文件 csq.txt 和 zhw.txt 不同
vimdiff命令
vimdiff
是vim
编辑器自带的文件差异比较工具,它可以让用户在一个终端窗口中同时打开两个文件,并将它们的差异以不同的颜色进行标示,从而方便用户进行比较和合并操作。下面是vimdiff
命令的详细解释和使用方法:
命令格式
vimdiff [选项] 文件1 文件2
选项说明
-
-d
:在左右排列的两个窗口中同时打开 csq.txt 和 zhw.txt 两个文件,如下图所示
-
-o
:以一上一下的方式打开这csq.txt和zhw.txt 两个文件,如图所示:
常用操作
- 上下左右箭头:在左右两个窗口中移动光标
Ctrl-w + w
:在左右两个窗口之间切换焦点Ctrl-w + r
:将或上下两个窗口的位置交换]c
:移动光标到下一个差异处[c
:移动光标到上一个差异处do
:将光标所在处的修改应用到另一个文件中dp
:将光标所在处的修改从另一个文件中复制到当前文件中:diffupdate
:更新差异信息:wqa
:保存并退出:qa
:强制退出zo
:打开折叠,显示差异处的内容zc
:关闭折叠,隐藏差异处的内容