Linux 文本处理工具(diff)
我们在命令行下,有时候需要了解两个文件的异同,比如和配置文件的备份文件对比. Linux
的 diff
工具将非常方便的来解决我们的需求.
二进制文件的对比
对于二进制文件的对比, diff
仅仅只是提示两个文件是否异同, 如果相同, 将不输出任何内容, 实验环境是 Ubuntu 18.04
, 我们对比下 /bin/sh
、 /bin/bash
、/bin/dash
, Ubuntu
最新版本 /bin/sh
使用的是 /bin/dash
, 而不是早前的 /bin/bash
.
root@server:~# diff /bin/sh /bin/bash
/bin/sh and /bin/bash differ
root@server:~# diff /bin/sh /bin/dash
文本文件对比
diff filename1 filename2
下面是diff
工具有用的一些选项:
-i
or--ignore-case
忽略大小写-e
or--ignore-tab-expansion
忽略tab变更内容-b
or--ignore-space-change
忽略空格变更内容-w
or--ignore-all-space
忽略所有空格内容-B
or--ignore-blank-lines
忽略所有空白行
目录对比
递归对比目录下的所有内容
diff -r --brief ~/dir1 ~/dir2
-r
意味着递归对比目录及其下的子目录--brief
仅仅输出内容不同的文件和不存在的内容
命令行对比颜色提示
类似 grep
的 --color
选项, 以便使用过程中颜色高亮不同内容, diff
工具自身并不包含 --color
选项, 我们可以使用 colordiff
工具来满足该需求
安装 colordiff
:
sudo apt -y install colordiff
使用格式和diff保持一致:
colordiff filename1 filename2