ウェブサイト検索

Linuxで重複ファイルを見つけて削除するためのベストツール5選


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

しばしば、同じmp3、pdf、epub(およびその他のさまざまなファイル拡張子)をダウンロードし、それを異なるディレクトリにコピーしていることに気づくことがあります。これは、ディレクトリが役に立たない重複したもののさまざまなもので混雑する原因になるかもしれません。

このチュートリアルでは、rdfind、fdupes、およびrmlintコマンドラインツールを使用してLinuxで重複ファイルを見つけて削除する方法、さらにDupeGuruとFSlintというGUIツールを使用する方法を学びます。

注意点 - システム上で何を削除するかには常に気をつけてください。これにより、望ましくないデータ損失につながる可能性があります。新しいツールを使用している場合は、まずファイルを削除しても問題ないテストディレクトリで試してください。

1. Rdfind - Linuxでの重複ファイルを見つける

Rdfindは冗長データ検索に由来し、複数のディレクトリ内または複数のディレクトリを通じて重複ファイルを見つけるために使用される無料のコマンドラインツールです。ディレクトリを再帰的にスキャンし、同一の内容を持つファイルを特定し、重複を削除したり移動したりするなどの適切なアクションを取ることができます。

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

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

  • もしAがBよりも早く入力引数をスキャンしている間に見つかった場合、Aはより高い順位にあります。
  • もしAがBよりも深い位置で見つかった場合、Aはより高いランクにあります。
  • AがBよりも早く見つかった場合、Aはより高いランクにあります。

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

LinuxにRdfindをインストールする

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 

2. Fdupes - Linuxでの重複ファイルスキャン

Fdupesは、システム上の重複ファイルを特定するための別のコマンドラインプログラムです。これは、ディレクトリを再帰的に検索し、ファイルサイズと内容を比較して重複を特定します。

重複ファイルを特定するために、次の方法を使用します:

  • 部分的なmd5sum署名を比較する
  • 完全なmd5sum署名の比較
  • バイトごとの比較検証

rdfindと同様に、同じようなオプションがあります。

  • 再帰的に検索する
  • 空のファイルを除外する
  • 重複ファイルのサイズを表示します
  • すぐに重複を削除してください
  • 異なる所有者のファイルを除外する

LinuxにFdupesをインストールする

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>

複数のディレクトリを指定し、再帰的に検索する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

3. Rmlint - 重複ファイルを削除する

Rmlintは、Linuxシステム内で重複ファイルやリントのようなファイルを見つけて削除するためのコマンドラインツールです。これは、同一の内容を持つファイルや、空のファイル、壊れたシンボリックリンク、孤立したファイルなどのさまざまな冗長性やリントの形態を特定するのに役立ちます。

LinuxにRmlintをインストールする

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]    

4. dupeGuru - Linuxで重複ファイルを見つける

dupeGuruは、Linuxシステム内の重複ファイルを見つけるために使用できるオープンソースでクロスプラットフォームなツールです。このツールは、1つまたは複数のフォルダ内のファイル名または内容をスキャンできます。また、検索しているファイルに似たファイル名を見つけることもできます。

dupeGuru は、Windows、Mac、Linuxプラットフォーム用の異なるバージョンで提供されています。迅速なファジーマッチングアルゴリズム機能により、1分以内に重複ファイルを見つけることができます。カスタマイズ可能で、必要な重複ファイルを正確に抽出して、不要なファイルをシステムから消去することができます。

LinuxにdupeGuruをインストールする

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]    

5. FSlint - Linux用の重複ファイル検索ツール

FSlintは、ファイルシステム上のさまざまな形式のリンターを見つけて掃除するために使用される無料のユーティリティです。また、重複ファイル、空のディレクトリ、一時ファイル、重複/競合する(バイナリ)名、悪いシンボリックリンクなども報告します。コマンドラインとGUIモードの両方があります。

ただし、私の知識のカットオフである2022年9月時点では、FSlint は2013年に最後の更新がされており、現在もアクティブにメンテナンスされていないか、新しいLinuxディストリビューションと互換性がない可能性があることに注意する必要があります。

LinuxにFSlintをインストールする

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システムで重複ファイルを見つけるための非常に便利なツールですが、そのようなファイルを削除する際は非常に注意が必要です。

もしそのファイルが必要かどうかわからない場合は、そのファイルのバックアップを作成し、削除する前にそのディレクトリを覚えておくほうが良いでしょう。質問やコメントがある場合は、下のコメントセクションにご提出ください。

関連記事: