答案:diff命令通过输出行号和操作符显示文件差异,使用-u选项可生成更易读的统一格式,-y选项实现并排对比,-r参数支持目录递归比较,而二进制文件应使用cmp命令处理。

在Linux中比较文件差异,
diff
要比较两个文件的差异,最基础的用法就是
diff 文件1 文件2
比如,我有两个文件,
file1.txt
file2.txt
file1.txt
Hello world. This is line two. A third line here.
file2.txt
Hello Linux. This is line two. A different third line. Fourth line added.
我执行
diff file1.txt file2.txt
1c1 < Hello world. --- > Hello Linux. 3c3,4 < A third line here. --- > A different third line. > Fourth line added.
这输出一开始看可能有点蒙,但其实逻辑很简单:
1c1
file1.txt
file2.txt
<
file1.txt
>
file2.txt
---
3c3,4
file1.txt
file2.txt
这个默认输出格式叫
ed
说实话,
diff
ed
c
a
d
最常用的,也是我强烈推荐的,是统一(Unified)格式,通过
-u
diff -u file1.txt file2.txt
输出会变成这样:
--- file1.txt 2023-10-27 10:00:00.000000000 +0800 +++ file2.txt 2023-10-27 10:01:00.000000000 +0800 @@ -1,3 +1,4 @@ -Hello world. +Hello Linux. This is line two. -A third line here. +A different third line. +Fourth line added.
看,这一下子就清晰多了!
---
+++
@@ -1,3 +1,4 @@
file1.txt
file2.txt
-
file1.txt
file2.txt
+
file2.txt
file1.txt
除了
-u
-y
-W
diff -y -W 80 file1.txt file2.txt
这会把两个文件内容并排显示,中间用符号标记差异。
Hello world. | Hello Linux.
This is line two. This is line two.
A third line here. | A different third line.
> Fourth line added.这简直是为人类阅读量身定制的!左边是旧文件,右边是新文件。
|
<
>
diff -u
diff
diff -r
想象一下,你有一个项目目录
project_v1
project_v2
diff -r project_v1 project_v2
这个命令会递归地遍历两个目录,找出所有不同之处。它会报告:
diff
ed
-u
-y
例如,如果
project_v1/src/main.c
project_v2/src/main.c
project_v2
README.md
Only in project_v2: README.md
然而,当涉及到二进制文件时,
diff
diff
Binary files X and Y differ
cmp
cmp
cmp file1.bin file2.bin
如果
file1.bin
file2.bin
file1.bin file2.bin differ: byte 10, line 2
所以,我的经验是,对于目录和文本文件,
diff -r
cmp
diff
diff
diff
一个非常实用的场景是生成补丁(patch)文件。当你修改了一个文件,想要把这些修改分享给别人,但又不想把整个文件发过去时,就可以用
diff -u
diff -u old_file.txt new_file.txt > my_changes.patch
这个
my_changes.patch
old_file.txt
new_file.txt
patch
old_file.txt
patch < my_changes.patch
这在开源项目协作、分发小范围更新时特别方便,也比直接发送修改后的文件要高效得多,毕竟补丁文件通常小得多。
另外,
diff
diff
0
1
以上就是如何在Linux中比较文件差异?使用diff命令分析两个文件的不同的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号