Linux比较两个目录的文件,且只输出文件内容不相同的文件名

对于比较两个目录,我们可以用Linux的diff命令。

例如:

diff dir1 dir2

dir1,dir2为要比较的目录名称

如果想要比较两个目录下的子目录和文件,也就是递归比较。

可以用如下命令:

diff -r dir1 dir2

参数 -r 代表递归查询

但是这个命令输出的是详细的差异内容,如果文件比较多的话,会是满屏的文字,不利于查找哪些文件存在差异。

想运行一个Linux命令,递归比较两个目录,并只输出不同的文件名。

可以用如下命令:

diff -qr dir1 dir2

参数 -q 代表只报高文件是否不同,不显示差异的详细信息。

输出示例:

$ ls dir1 dir2
dir1:
same-file  different  only-1

dir2:
same-file  different  only-2
$ diff -qr dir1 dir2
Files dir1/different and dir2/different differ
Only in dir1: only-1
Only in dir2: only-2

留下评论