帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  在Linux上识别同样内容的文件详解

在Linux上识别同样内容的文件详解

2019-08-27 15:03:43 7102

在Linux上识别同样内容的文件详解


有时文件副本相当于对硬盘空间的巨大浪费,并会在你想要更新文件时造成困扰。以下是用来识别这些文件。



用 diff 命令比较文件

可能比较两个文件最简单的方法是使用 diff 命令。输出会显示你文件的不同之处。 < 和 > 符号代表在当参数传过来的第一个( < )或第二个( > )文件中是否有额外的文字行。在这个例子中,在 backup.html 中有额外的文字行。


$ diff index.html backup.html

2438a2439,2441

> <pre>

> That's all there is to report.

> </pre>


如果 diff 没有输出那代表两个文件相同。

$ diff home.html index.html

$

diff 的唯一缺点是它一次只能比较两个文件并且你必须指定用来比较的文件,这篇帖子中的一些命令可以为你找到多个重复文件。


使用校验和

cksum (checksum) 命令计算文件的校验和。校验和是一种将文字内容转化成一个长数字(例如2819078353 228029)的数学简化。虽然校验和并不是完全独有的,但是文件内容不同校验和却相同的概率微乎其微。

$ cksum *.html

2819078353 228029 backup.html

4073570409 227985 home.html

4073570409 227985 index.html

在上述示例中,你可以看到产生同样校验和的第二个和第三个文件是如何可以被默认为相同的。


使用 find 命令

虽然 find 命令并没有寻找重复文件的选项,它依然可以被用来通过名字或类型寻找文件并运行 cksum 命令。例如:

$ find . -name "*.html" -exec cksum {} \;

4073570409 227985 ./home.html

2819078353 228029 ./backup.html

4073570409 227985 ./index.html


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: