设为首页 收藏本站
查看: 701|回复: 0

小猿圈学习Linux之识别同样内容的文件详解

[复制链接]
累计签到:3 天
连续签到:3 天
发表于 2019-6-10 17:52:51 | 显示全部楼层 |阅读模式
对于学习linux的学生是不是很多都没有找到的资料过,有些在网上找的资料不是补全就是不正确,对于互联网发展的今天,网络发达了,也造成了信息化的泛滥,今天小猿圈Linux讲师为大家总结一下学习Linux中的识别同样内容的文件详解



首先比如有时文件副本相当于对硬盘空间的巨大浪费,并会在你想要更新文件时造成困扰。以下是用来识别这些文件的六个命令。在最近的帖子中,我们看了如何识别并定位硬链接的文件(即,指向同一硬盘内容并共享inode)。在本文中,我们将查看能找到具有相同内容,却不相链接的文件的命令。
硬链接很有用是因为它们能够使文件存放在文件系统内的多个地方却不会占用额外的硬盘空间。另一方面,有时文件副本相当于对硬盘空间的巨大浪费,在你想要更新文件时也会有造成困扰之虞。在本文中,我们将看一下多种识别这些文件的方式。
用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)命令计算文件的校验和。校验和是一种将文字内容转化成一个长数字(例如2819078353228029)的数学简化。虽然校验和并不是完全独有的,但是文件内容不同校验和却相同的概率微乎其微。
$ 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
使用fslint命令
fslint命令可以被特地用来寻找重复文件。注意我们给了它一个起始位置。如果它需要遍历相当多的文件,这就需要花点时间来完成。注意它是如何列出重复文件并寻找其它问题的,比如空目录和坏ID。
$ fslint .
-----------------------------------file name lint
-------------------------------Invalid utf8 names
-----------------------------------file case lint
----------------------------------DUPlicate files  <==
home.html
index.html
-----------------------------------Dangling links
--------------------redundant characters in links
------------------------------------suspect links
--------------------------------Empty Directories
./.gnupg
----------------------------------Temporary Files
----------------------duplicate/conflicting Names
------------------------------------------Bad ids
-------------------------Non Stripped executables
你可能需要在你的系统上安装fslint。你可能也需要将它加入你的命令搜索路径:
$ export PATH=$PATH:/usr/share/fslint/fslint
使用rdfind命令
rdfind命令也会寻找重复(相同内容的)文件。它的名字意即“重复数据搜寻”,并且它能够基于文件日期判断哪个文件是原件——这在你选择删除副本时很有用因为它会移除较新的文件。
fdupes命令是另一个你可能需要安装并使用一段时间才能熟悉其众多选项的命令。Linux系统提供能够定位并(潜在地)能移除重复文件的一系列的好工具,以及能让你指定搜索区域及当对你所发现的重复文件时的处理方式的选项。
以上就是小猿圈Linux讲师总结的linux识别同样内容的文件详解,希望对你有所帮助,想了解更多学习linux内容的小伙伴可以到小猿圈上寻找答案linux自学交流1群:819805410,也可以在下方留言、转发、评论分享给有用的人。不仅不帮了你更是解决大他人的问题,小猿圈网站所有视频都是可以免费学习的。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-908289-1-1.html 上篇帖子: 小猿圈web前端之移动端Vue+Vant实现上传压缩旋转图片功能 下篇帖子: 小猿圈Python开发如何判断jpeg图片完整性示例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表