实践|Linux 中查找和删除重复文件

简介: 实践|Linux 中查找和删除重复文件

动动发财的小手,点个赞吧!

如果您习惯使用下载管理器从互联网上下载各种内容,那么组织您的主目录甚至系统可能会特别困难。

通常,您可能会发现您下载了相同的 mp3、pdf 和 epub(以及各种其他文件扩展名)并将其复制到不同的目录。这可能会导致您的目录中充满各种无用的重复内容。

在本教程中,您将学习如何使用 rdfind、fdupes 和 rmlint 命令行工具以及使用名为 DupeGuru 和 FSlint 的 GUI 工具在 Linux 中查找和删除重复文件。

请注意 - 始终小心您在系统上删除的内容,因为这可能会导致不必要的数据丢失。如果您使用新工具,请首先在测试目录中尝试,在该目录中删除文件不会出现问题。

Rdfind – 在 Linux 中查找重复文件

Rdfind 来自冗余数据查找,它是一个免费的命令行工具,用于跨多个目录或多个目录内查找重复文件。它递归地扫描目录并识别具有相同内容的文件,允许您采取适当的操作,例如删除或移动重复项。

Rdfind 使用一种算法对文件进行分类,并检测哪些重复项是原始文件,并将其余的视为重复项。

排名规则为:

  • 如果在扫描输入参数时发现 A 早于 B,则 A 的排名较高。
  • 如果 A 的发现深度低于 B,则 A 的排名较高。
  • 如果 A 早于 B 被发现,则 A 的排名较高。

最后一条规则特别适用于在同一目录中找到两个文件时。

Install

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

$ 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 和目标目录。

$ rdfind /home/user

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

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

$ rdfind -dryrun true /home/user

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

$ rdfind -makehardlinks true /home/user

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

$ rdfind -deleteduplicates true /home/user

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

$ man rdfind

Fdupes – 扫描 Linux 中的重复文件

Fdupes 是另一个命令行程序,可让您识别系统上的重复文件。它递归地搜索目录,比较文件大小和内容以识别重复项。

它使用以下方法来确定重复文件:

  • 比较部分 md5sum 签名
  • 比较完整的 md5sum 签名
  • 逐字节比较验证

就像 rdfind 一样,它有类似的选项:

  • 递归搜索
  • 排除空文件
  • 显示重复文件的大小
  • 立即删除重复项
  • 排除具有不同所有者的文件

Install

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

$ 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 类似。只需键入命令,然后键入您要扫描的目录即可。

$ fdupes <dir>

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

$ fdupes -r <dir>

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

$ fdupes <dir1> -r <dir2>

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

$ fdupes -S <dir>

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

$ fdupes -m <dir>

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

$ fdupes -d <dir>

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

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

$ fdupes -dN <dir>

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

$ fdupes -help

Rmlint – 删除重复文件

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

Install

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

$ 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]

dupeGuru – 在 Linux 中查找重复文件

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

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

Install

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

$ 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]

FSlint – 适用于 Linux 的重复文件查找器

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

然而,值得注意的是,截至 2022 年 9 月我所知,FSlint 的最后一次更新是在 2013 年,可能不会得到积极维护或与较新的 Linux 发行版兼容。

Install

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

$ 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 系统上查找重复文件的非常有用的工具,但删除此类文件时应该非常小心。

如果您不确定是否需要某个文件,最好在删除该文件之前创建该文件的备份并记住其目录。如果您有任何问题或意见,请在下面的评论部分提交。

相关文章
|
6月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
4月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
586 13
|
5月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
164 16
|
5月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
91 4
|
6月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
163 28
|
6月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
762 12
|
7月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
393 19
|
5月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename &#39;s/2023/2024/&#39; *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
8月前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
161 19
|
8月前
|
Linux
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat &gt; filename` 创建新文件,`cat &gt;&gt; filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
299 5
Linux 常用文件查看命令
下一篇
开通oss服务