您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

如何寻找并删除系统里的重复文件,快速释放磁盘空间?

时间:2023-03-03 16:04:46  来源:今日头条  作者:Linux码农

不管是 windows 电脑还是 linux 电脑,在使用的过程中,或多或少都会留下很多重复的文件。这些文件不仅会占用我们的磁盘,还会拖累我们的系统,所以,很有必要干掉这些重复的文件。

本文将介绍 6 种方法找到系统里的重复文件,让你快速释放硬盘空间!

1. 使用 diff 命令比较文件

diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。

diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。

当两个文件有差异时,diff 命令将输出差异点:

# cat a.txt
hello
abc
123

# cat b.txt
sldf
123
hello

#diff a.txt b.txt
1,2c1 
< hello
< abc
---
> sldf
3a3
> hello

在 diff 中 diff 的 normal 显示格式有三种提示:

a - add
c - change
d - delete

从上面的差异可知,因为 a.txt 的第3行 和 b.txt的第2行相等,所以 1,2c1 显示的是a.txt 的前2行和b.txt的第1行是不同的。

由于2个文件的中的内容123相同,相对于内容123下面的行,b.txt 比 a.txt多了一行 hello

使用 diff 比较2个文件夹

# diff adir bdir
diff adir/a.txt bdir/a.txt
1c1
< hello
---
> abc
Only in adir: b.txt
Only in bdir: c.txt

从 diff 分析可知:

adir 文件夹与 bdir 文件夹各有一个 a.txt 文件,其中第一行内容是不同的。a.txt 第一行内容时 hello, b.txt 第一行的内容时 abc。

同时,在 adir 文件中存在一个文件 b.txt, 在 bdir 文件夹中存在一个文件c.txt。

diff 命令的缺点是它一次只能比较两个文件,如果我们要比较多个文件,这样两个两个比较效率肯定非常低下。

2. 使用校验和

Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。所以,如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。

校验和命令的原理是根据一定的算法将文件内容进行运算生成一个校验码,根据校验码的不同来判断文件内容是否发生变化。

# diff a.txt b.txt //没有输出说明2个文件内容是相同的
#
#
#cksum a.txt
2532900428 50 a.txt
#cksum b.txt
2532900428 50 b.txt

上面的输出信息中,"2532900428 "表示校验码,"50"表示字节数。

通过上面的校验码可知,a.txt 和 b.txt 内容是相同的。

3. 使用 find 命令

当需要判断一类文件时,可以根据find命令查找给定给定文件,然后对这些文件进行cksum校验,输出校验码,根据校验码进行判断是否发生变化。

# find . -name "*.txt" -exec cksum {} ;
2532900428 50 ./a.txt
2532900428 50 ./b.txt
290493225 32 ./c.txt
25632541 27 ./d.txt

根据校验码可知 a.txt 与 b.txt 相同,c.txt 与 d.txt 不同。

4. 使用 fslint 命令

fslint是一个Linux工具来删除文件,文件名不必要的和有问题的文件,从而保持电脑清洁。

使用该工具时我们要有个注意事项,就是我们需要给它一个起始位置。如果我们需要运行大量文件,该命令可能需要相当长的时间才能完成查找。

$ fslint .
-----------------------------------file name lint
-------------------------------Invalid utf8 names
-----------------------------------file case lint
----------------------------------DUPlicate files <==
a.txt
b.txt
-----------------------------------Dangling links
--------------------redundant characters in links
------------------------------------suspect links
--------------------------------Empty Directories
./.gnupg
----------------------------------Temporary Files
----------------------duplicate/conflicting Names
------------------------------------------Bad ids
-------------------------Non Stripped executables

5. 使用 fdupes 命令

fdupes 是 Linux 下的一个工具,它由 Adrian Lopez 用C编程语言编写并基于 MIT 许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件。fdupes 通过对比文件的 MD5 签名,以及逐字节比较文件来识别重复内容,fdupes 有各种选项,可以实现对文件的列出、删除、替换为文件副本的硬链接等操作。

$ fdupes ~

/home/adir/a.txt
/home/adir/b.txt

/home/adir/go.png
/home/adir/go0.png
/home/adir/h.png

-r 选项代表递归,表示它将在各个目录下面使用递归的方式来查找重复文件。但是,Linux 下有许多重复文件是很重要的(比如用户的 .bashrc 和 .profile 文件),如果被删除将导致系统异常。

# fdupes -r /home
/home/shark/home.html
/home/shark/index.html

/home/dory/.bashrc
/home/eel/.bashrc

/home/nemo/.profile
/home/dory/.profile
/home/shark/.profile

/home/nemo/tryme
/home/shs/tryme

/home/shs/arrow.png
/home/shs/PNGs/arrow.png

fdupes 命令的常用选项如下表所示:

6. 使用 rdfind 命令

Rdfind 意即 redundant data find(冗余数据查找),是一个通过访问目录和子目录来找出重复文件的自由开源的工具。它是基于文件内容而不是文件名来比较。

Rdfind 使用排序算法来区分原始文件和重复文件。如果你有两个或者更多的相同文件,Rdfind 会很智能的找到原始文件并认定剩下的文件为重复文件。一旦找到副本文件,它会向你报告。你可以决定是删除还是使用硬链接或者符号(软)链接代替它们。

$ rdfind ~
Now scanning "/opt/adir", found 12 files.
Now have 12 files in total.
Removed 1 files due to nonunique device and inode.
Total size is 699498 bytes or 683 KiB
Removed 9 files due to unique sizes from list.2 files left.
Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.
Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.
Now eliminating candidates based on sha1 checksum:removed 0 files from list.2 files left.
It seems like you have 2 files that are not unique
Totally, 223 KiB can be reduced.
Now making results file results.txt

我们还可以在 dryrun 中运行。

$ rdfind -dryrun true ~
(DRYRUN MODE) Now scanning "/opt/adir", found 12 files.
(DRYRUN MODE) Now have 12 files in total.
(DRYRUN MODE) Removed 1 files due to nonunique device and inode.
(DRYRUN MODE) Total size is 699352 bytes or 683 KiB
Removed 9 files due to unique sizes from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.
...

rdfind 命令还提供一些忽略空文件(-ignoreempty)和跟随符号链接(-followsymlinks)之类的选项。下面详细解释它的常用选项。

这里需要我们注意一下,rdfind命令提供了使用 -deleteduplicates true 设置删除重复文件的选项。顾名思义,使用这个选项它将自动删重复的文件。

$ rdfind -deleteduplicates true .

...

Deleted 1 files. <==

当然,前提是我们也必须在系统上安装 rdfind 命令。



Tags:磁盘空间   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Windows 10怎么清理磁盘空间?
现在,电脑是我们日常生活中很普遍的的一个工具,但在平常使用电脑时,我们会经常遇到磁盘空间已满的问题。而很多计算机新手都不知道电脑怎么清理磁盘空间,本将已Win10系统为例,教...【详细内容】
2023-09-21  Search: 磁盘空间  点击:(274)  评论:(0)  加入收藏
Docker的/var/lib/docker文件夹占满了磁盘空间
场景描述事情是这样的,前两天客户的服务器突然断电了,导致用docker部署的服务也挂了。昨天去现场,重启了docker,同时准备更新一下服务。结果发现有一台节点硬盘满了&hellip;还是...【详细内容】
2023-09-02  Search: 磁盘空间  点击:(320)  评论:(0)  加入收藏
Linux 系统在线扩容磁盘空间
一、概述在Linux系统中,目录的大小是动态的,随着其中的文件和子目录的添加、删除和修改而变化。当目录中的文件和子目录越来越多时,可能需要对该目录进行动态扩容,以便为其提供...【详细内容】
2023-04-19  Search: 磁盘空间  点击:(368)  评论:(0)  加入收藏
明明删除了文件,磁盘空间为何没释放
当系统空间使用量过大需要清理空间或者清理某个文件时,有时会出现执行了删除命令之后磁盘空间并没有释放的情况。很多人首次遇到该情况时会比较困惑,在考虑是不是像windows系...【详细内容】
2023-03-06  Search: 磁盘空间  点击:(355)  评论:(0)  加入收藏
如何寻找并删除系统里的重复文件,快速释放磁盘空间?
不管是 Windows 电脑还是 Linux 电脑,在使用的过程中,或多或少都会留下很多重复的文件。这些文件不仅会占用我们的磁盘,还会拖累我们的系统,所以,很有必要干掉这些重复的文件。本...【详细内容】
2023-03-03  Search: 磁盘空间  点击:(230)  评论:(0)  加入收藏
电脑C盘总是爆满?4个方法教你释放磁盘空间
很多小伙伴都会有这样的疑惑,自己刚买的电脑还没怎么用,且日常使用都会进行垃圾清理,C盘怎么就爆满了呢?别急,今天就由我来教大家几招,彻底清理磁盘空间,释放储存、运行内存!技巧①:...【详细内容】
2022-08-30  Search: 磁盘空间  点击:(501)  评论:(0)  加入收藏
Linux 磁盘空间被吃掉了?这样排查不背锅
在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警 登录服务器,通过 df -Hl 查看 和告警信息一致,接着我们就是要找到导致磁盘空间满的目录或文件如何找到占...【详细内容】
2022-04-25  Search: 磁盘空间  点击:(335)  评论:(0)  加入收藏
如何在 Linux 上检查可用的磁盘空间
我已经使用了多少磁盘空间?&bull; 来源:linux.cn &bull; 作者:Abhishek Prakash &bull; 译者:郑 &bull;(本文字数:2161,阅读时长大约:3 分钟) 在 Linux 上查找可用磁盘空间的最简单...【详细内容】
2020-11-19  Search: 磁盘空间  点击:(294)  评论:(0)  加入收藏
MySQL 临时表空间数据过多导致磁盘空间不足的问题排查
我们的合作客户,驻场人员报告说一个 RDS 实例出现磁盘不足的告警,需要排查。...【详细内容】
2020-10-20  Search: 磁盘空间  点击:(316)  评论:(0)  加入收藏
想知道是什么占用你的电脑空间,正确使用Windows 10查看磁盘空间
在Windows 10中管理可用存储空间是一项重要任务,尤其是在驱动器较小且经常装满的计算机上。不幸的是,并非总是很明显哪些文件夹正在占用驱动器上的可用空间。是您的应用程序,...【详细内容】
2020-08-02  Search: 磁盘空间  点击:(431)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(2)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(1)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(7)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(2)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(1)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(2)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(15)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(14)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(16)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔&middot;盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(36)  评论:(0)  加入收藏
站内最新
站内热门
站内头条