Linux で重複ファイルを検索して削除するための 5 つの最適なツール
ダウンロード マネージャーを使用してインターネットからあらゆる種類のものをダウンロードする習慣がある場合、ホーム ディレクトリやシステムの整理が特に困難になることがあります。
多くの場合、同じ mp3、pdf、epub (およびその他のあらゆる種類のファイル拡張子) をダウンロードし、別のディレクトリにコピーしたことがあります。これにより、ディレクトリがあらゆる種類の役に立たない重複したもので乱雑になる可能性があります。
このチュートリアルでは、rdfind、fdupes、rmlint のコマンドライン ツールを使用して、Linux で重複ファイルを検索して削除する方法を学習します。 、 またDupeGuruとFSlintと呼ばれるGUIツールを使用します。
注意事項 – 望ましくないデータの損失につながる可能性があるため、システム上で何を削除するかには常に注意してください。新しいツールを使用している場合は、まずファイルを削除しても問題のないテスト ディレクトリでそれを試してください。
1. Rdfind – Linux で重複ファイルを検索する
Rdfind は、冗長データ検索に由来しています。これは、複数のディレクトリ間またはディレクトリ内で重複ファイルを検索するために使用される無料のコマンドライン ツールです。ディレクトリを再帰的にスキャンして、同一の内容を持つファイルを識別し、重複ファイルの削除や移動などの適切なアクションを実行できるようにします。
Rdfind はアルゴリズムを使用してファイルを分類し、重複のうちどれが元のファイルであるかを検出し、残りを重複と見なします。
ランキングのルールは次のとおりです。
- 入力引数のスキャン中に B よりも前に A が見つかった場合、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 が検出したすべての重複ファイルが含まれています。必要に応じて、ファイルを確認し、重複したファイルを手動で削除できます。
もう 1 つの方法は、 -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 に Fdupe をインストールする
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
3. Rmlint – 重複ファイルの削除
Rmlint は、Linux システムで重複したファイルや lint のようなファイルを検索して削除するために使用されるコマンド ライン ツールです。これは、同一のコンテンツを持つファイルだけでなく、空のファイル、壊れたシンボリック リンク、孤立したファイルなどのさまざまな形式の冗長性やリントを識別するのに役立ちます。
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 は、ファイル システム上のさまざまな形式の lint を検索して除去するために使用される無料のユーティリティです。また、重複ファイル、空のディレクトリ、一時ファイル、重複/競合する (バイナリ) 名、不正なシンボリック リンクなども報告します。コマンドライン モードと 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 システム上で重複したファイルを見つけるのに非常に便利なツールですが、そのようなファイルを削除する場合は十分に注意する必要があります。
ファイルが必要かどうか不明な場合は、削除する前にそのファイルのバックアップを作成し、そのディレクトリを覚えておくことをお勧めします。ご質問やご意見がございましたら、以下のコメント欄に送信してください。