前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux|如何查找和删除重复文件

Linux|如何查找和删除重复文件

作者头像
数据科学工厂
发布2024-07-05 13:39:40
860
发布2024-07-05 13:39:40
举报
文章被收录于专栏:数据科学(冷冻工厂)

引言

整理您的个人文件夹甚至整个操作系统可能会相当棘手,特别是当您习惯于使用下载管理器从网上下载各种资料时。

在很多情况下,您可能会发现自己不小心下载了重复的mp3、pdf和epub文件(以及其他类型的文件),并将它们复制到了多个文件夹中。这种做法可能会使您的文件夹变得杂乱不堪,充斥着许多无用的重复文件。

本文[1]将教您如何在Linux操作系统中利用rdfind、fdupes和rmlint这些命令行工具,以及Dupeguru和FSlint这两款图形界面工具来识别和清除重复的文件。

请注意,删除文件时要格外小心,因为不当的操作可能会导致您失去重要的数据。如果您是第一次使用某个工具,建议您先在一个测试文件夹中进行尝试,以避免误删重要文件。

1. Rdfind

rdfind,即“重复数据查找”,是一个免费的命令行程序,它能够跨目录或在单一目录内搜索重复的文件。该工具会深入地遍历目录,找出内容完全相同的文件,让您可以执行删除或移动这些重复项的操作。

rdfind 采用一种算法来对文件进行排序,并确定哪个副本是原始文件,而将其他的归类为副本。

文件排名的规则包括:

  • 如果在处理输入参数时,A 比 B 更先被找到,那么 A 的优先级更高。
  • 如果 A 比 B 在更深层次的目录中被找到,A 的优先级更高。
  • 如果 A 比 B 更早被找到,A 的优先级更高。
  • 当两个文件位于同一目录时,特别会使用最后一条规则来决定它们的优先级。

要在 Linux 中安装 rdfind,请根据您的 Linux 发行版使用以下命令。

代码语言:javascript
复制
$ sudo apt install rdfind         [On Debian, Ubuntu and Mint]
$ sudo yum install rdfind         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/rdfind  [On Gentoo Linux]
$ sudo apk add rdfind             [On Alpine Linux]
$ sudo pacman -S rdfind           [On Arch Linux]
$ sudo zypper install rdfind      [On OpenSUSE]  

要在目录上运行 rdfind,只需键入 rdfind 和目标目录

代码语言:javascript
复制
$ rdfind /home/user

如您所见,rdfind 会将结果保存在名为 results.txt 的文件中,该文件位于运行程序的同一目录中。该文件包含 rdfind 找到的所有重复文件。如果需要,您可以查看该文件并手动删除重复的文件。

您可以做的另一件事是使用 -dryrun 选项,该选项将提供重复项列表,而无需执行任何操作:

代码语言:javascript
复制
$ rdfind -dryrun true /home/user

当您找到重复项时,您可以选择用硬链接替换它们。

代码语言:javascript
复制
$ rdfind -makehardlinks true /home/user

如果您想删除重复项,您可以运行。

代码语言:javascript
复制
$ rdfind -deleteduplicates true /home/user

要检查 rdfind 的其他有用选项,您可以使用 rdfind 手册。

代码语言:javascript
复制
$ man rdfind 

2. Fdupes

要在 Linux 中安装 fdupes,请根据您的 Linux 发行版使用以下命令。

代码语言:javascript
复制
$ sudo apt install fdupes         [On Debian, Ubuntu and Mint]
$ sudo yum install fdupes         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/fdupes  [On Gentoo Linux]
$ sudo apk add fdupes             [On Alpine Linux]
$ sudo pacman -S fdupes           [On Arch Linux]
$ sudo zypper install fdupes      [On OpenSUSE]  

Fdupes 语法与 rdfind 类似。只需键入命令,然后键入您要扫描的目录即可。

代码语言:javascript
复制
$ fdupes <dir>

要递归搜索文件,您必须指定 -r 选项,如下所示。

代码语言:javascript
复制
$ fdupes -r <dir>

您还可以指定多个目录并指定要递归搜索的目录。

代码语言:javascript
复制
$ fdupes <dir1> -r <dir2>

要让 fdupes 计算重复文件的大小,请使用 -S 选项。

代码语言:javascript
复制
$ fdupes -S <dir>

要收集有关找到的文件的汇总信息,请使用 -m 选项。

代码语言:javascript
复制
$ fdupes -m <dir>

最后,如果您想删除所有重复项,请使用 -d 选项,如下所示。

代码语言:javascript
复制
$ fdupes -d <dir>

Fdupes 将询问要删除哪个找到的文件。您需要输入文件编号:

绝对不推荐的解决方案是使用 -N 选项,这将导致仅保留第一个文件。

代码语言:javascript
复制
$ fdupes -dN <dir>

要获取与 fdupes 一起使用的可用选项列表,请通过运行查看帮助页面。

代码语言:javascript
复制
$ fdupes -help

3. Rmlint

Rmlint 是一个命令行工具,用于在 Linux 系统中查找和删除重复的和类似 lint 的文件。它有助于识别具有相同内容的文件,以及各种形式的冗余或 lint,例如空文件、损坏的符号链接和孤立文件。

要在 Linux 中安装 Rmlint,请根据您的 Linux 发行版使用以下命令。

代码语言:javascript
复制
$ sudo apt install rmlint         [On Debian, Ubuntu and Mint]
$ sudo yum install rmlint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/rmlint  [On Gentoo Linux]
$ sudo apk add rmlint             [On Alpine Linux]
$ sudo pacman -S rmlint           [On Arch Linux]
$ sudo zypper install rmlint      [On OpenSUSE]   

4. dupeGuru

dupeGuru 是一个开源、跨平台的工具,可用于查找 Linux 系统中的重复文件。该工具可以扫描一个或多个文件夹中的文件名或内容。它还允许您找到与您正在搜索的文件相似的文件名。

dupeGuru 有适用于 Windows、Mac 和 Linux 平台的不同版本。其快速模糊匹配算法功能可帮助您在一分钟内找到重复文件。它是可定制的,您可以提取所需的精确重复文件,并从系统中擦除不需要的文件。

要在 Linux 中安装 dupeGuru,请根据您的 Linux 发行版使用以下命令。

代码语言:javascript
复制
$ sudo apt install dupeguru         [On Debian, Ubuntu and Mint]
$ sudo yum install dupeguru         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/dupeguru  [On Gentoo Linux]
$ sudo apk add dupeguru             [On Alpine Linux]
$ sudo pacman -S dupeguru           [On Arch Linux]
$ sudo zypper install dupeguru      [On OpenSUSE]  

5. FSlint

FSlint 是一个免费实用程序,用于查找和清理文件系统上各种形式的 lint。它还报告重复文件、空目录、临时文件、重复/冲突(二进制)名称、错误的符号链接等等。它具有命令行和 GUI 模式。

要在 Linux 中安装 FSlint,请根据您的 Linux 发行版使用以下命令。

代码语言:javascript
复制
$ sudo apt install fslint         [On Debian, Ubuntu and Mint]
$ sudo yum install fslint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/fslint  [On Gentoo Linux]
$ sudo apk add fslint             [On Alpine Linux]
$ sudo pacman -S fslint           [On Arch Linux]
$ sudo zypper install fslint      [On OpenSUSE]  

总结

这些是在 Linux 系统上查找重复文件的非常有用的工具,但删除此类文件时应该非常小心。如果您不确定是否需要某个文件,最好在删除该文件之前创建该文件的备份并记住其目录。

Reference

[1]

Source: https://www.tecmint.com/find-and-delete-duplicate-files-in-linux/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冷冻工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1. Rdfind
  • 2. Fdupes
  • 3. Rmlint
  • 4. dupeGuru
  • 5. FSlint
  • 总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档