演習|Linux で重複ファイルを検索して削除する

小さな手を動かして大金を稼いで、親指を立ててください!

ダウンロード マネージャーを使用してインターネットからあらゆる種類のコンテンツをダウンロードすることに慣れている場合、ホーム ディレクトリやシステムの整理が特に困難になることがあります。

多くの場合、同じ mp3、pdf、epub (およびその他のさまざまなファイル拡張子) をダウンロードして、別のディレクトリにコピーすることがあります。これにより、ディレクトリがあらゆる種類の無駄な重複コンテンツでいっぱいになる可能性があります。

このチュートリアルでは、rdfind、fdupes、および rmlint コマンド ライン ツールと、DupeGuru および FSlint と呼ばれる GUI ツールを使用して、Linux で重複ファイルを検索して削除する方法を学習します。

注意してください - 不必要なデータ損失につながる可能性があるため、システム上で何を削除するかには常に注意してください。新しいツールを使用している場合は、まずテスト ディレクトリで試してください。ファイルの削除に問題はありません。

Rdfind - Linux で重複ファイルを検索する

Redundant Data Find の Rdfind は、複数のディレクトリ間またはディレクトリ内で重複ファイルを検索するための無料のコマンドライン ツールです。ディレクトリを再帰的にスキャンし、同一の内容を持つファイルを識別することで、重複の削除や移動などの適切なアクションを実行できるようになります。

Rdfind はアルゴリズムを使用してファイルを分類し、どの重複が元のファイルであるかを検出し、残りを重複として扱います。

ランキングのルールは次のとおりです。

  • 入力パラメータをスキャンするときに A が B よりも早いことが判明した場合、A が上位にランクされます。
  • A の発見深さが B よりも低い場合、A のランクが高くなります。
  • A が B よりも早く見つかった場合、A が上位にランクされます。

最後のルールは、同じディレクトリ内に 2 つのファイルが見つかった場合に特に適用されます。

インストール

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
alt

ご覧のとおり、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>
alt

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

$ fdupes -d <dir>

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

alt

绝对不推荐的解决方案是使用 -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]    
alt

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

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

总结

这些是在 Linux 系统上查找重复文件的非常有用的工具,但删除此类文件时应该非常小心。

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

本文由 mdnice 多平台发布

おすすめ

転載: blog.csdn.net/swindler_ice/article/details/132228750