ほとんどのコンピューターユーザーにとって、重複ファイルを見つけて置き換えることは一般的な要件です。重複ファイルの検索と削除は、時間と忍耐を必要とする面倒な作業です。マシンがGNU/Linuxを搭載している場合、「 fdupes 」のおかげで、重複ファイルを見つけるのは非常に簡単です。 ‘ユーティリティ。


fdupesとは何ですか?
Fdupes Adrian Lopezによって作成されたLinuxユーティリティです。 C MITライセンスの下でリリースされたプログラミング言語。アプリケーションは、指定されたディレクトリとサブディレクトリのセットで重複ファイルを見つけることができます。 Fdupesは、ファイルのMD5署名を比較した後、バイトごとに比較することにより、重複を認識します。 Fdupesを使用して多くのオプションを渡して、ファイルを一覧表示、削除、および複製へのハードリンクに置き換えることができます。
比較は次の順序で始まります:
サイズの比較>部分的なMD5署名の比較>完全なMD5署名の比較>バイト間の比較 。
Linuxにfdupesをインストールする
Debian で次のコマンドを実行するのと同じくらい簡単に、最新バージョンのfdupes(fdupesバージョン1.51)をインストールできます。 Ubuntuなどのベースのシステム およびLinuxMint 。
$ sudo apt-get install fdupes
CentOS / RHEL およびFedora ベースのシステムでは、fdupesパッケージをインストールするにはepelリポジトリをオンにする必要があります。
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
fdupesコマンドの使用方法は?
1。 デモンストレーションの目的で、ディレクトリの下にいくつかの重複ファイルを作成しましょう(たとえば、 tecmint )単に:
$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done
上記のコマンドを実行した後、重複ファイルが作成されているか、lsコマンドを使用していないかを確認しましょう。
$ ls -l total 60 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint10.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint12.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint13.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint14.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint15.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint1.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint2.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint3.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint4.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint5.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint6.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint7.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint8.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
上記のスクリプトは15を作成します ファイル、つまりtecmint1.txt、tecmint2.txt…tecmint15.txt、およびすべてのファイルに同じデータが含まれています。つまり、
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2。 次に、フォルダ tecmint内の重複ファイルを検索します 。
$ fdupes /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
3。 -r を使用して、サブディレクトリを含むすべてのディレクトリで重複を再帰的に検索します オプション。
重複をスキャンするのに時間がかかるファイルとフォルダーの数に応じて、すべてのファイルとフォルダーを再帰的に検索します。その間に、ターミナルの全体的な進捗状況が次のように表示されます。
$ fdupes -r /home Progress [37780/54747] 69%
4。 -S を使用して、フォルダ内で見つかった重複のサイズを確認します オプション。
$ fdupes -S /home/$USER/Desktop/tecmint 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
5。 -S を使用すると、遭遇したすべてのディレクトリとサブディレクトリの重複ファイルのサイズを確認できます。 および-r 同時にオプション:
$ fdupes -Sr /home/avi/Desktop/ 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt 107 bytes each: /home/tecmint/Desktop/resume_files/r-csc.html /home/tecmint/Desktop/resume_files/fc.html
6。 1つのフォルダーまたはすべてのフォルダーを再帰的に検索する以外に、必要に応じて2つのフォルダーまたは3つのフォルダーを選択できます。言うまでもなく、オプション -Sを使用できます および/または-r 必要に応じて。
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7。 コピーを保持したまま重複ファイルを削除するには、オプション‘-d’を使用できます。 。このオプションを使用するときは特に注意が必要です。そうしないと、必要なファイルやデータが失われ、プロセスが回復不能になる可能性があります。
$ fdupes -d /home/$USER/Desktop/tecmint [1] /home/tecmint/Desktop/tecmint/tecmint13.txt [2] /home/tecmint/Desktop/tecmint/tecmint8.txt [3] /home/tecmint/Desktop/tecmint/tecmint11.txt [4] /home/tecmint/Desktop/tecmint/tecmint3.txt [5] /home/tecmint/Desktop/tecmint/tecmint4.txt [6] /home/tecmint/Desktop/tecmint/tecmint6.txt [7] /home/tecmint/Desktop/tecmint/tecmint7.txt [8] /home/tecmint/Desktop/tecmint/tecmint9.txt [9] /home/tecmint/Desktop/tecmint/tecmint10.txt [10] /home/tecmint/Desktop/tecmint/tecmint2.txt [11] /home/tecmint/Desktop/tecmint/tecmint5.txt [12] /home/tecmint/Desktop/tecmint/tecmint14.txt [13] /home/tecmint/Desktop/tecmint/tecmint1.txt [14] /home/tecmint/Desktop/tecmint/tecmint15.txt [15] /home/tecmint/Desktop/tecmint/tecmint12.txt Set 1 of 1, preserve files [1 - 15, all]:
すべての重複が一覧表示され、1つずつ、特定の範囲、またはすべてを一度に削除するように求められる場合があります。以下のような範囲を選択して、特定の範囲のファイルファイルを削除できます。
Set 1 of 1, preserve files [1 - 15, all]: 2-15 [-] /home/tecmint/Desktop/tecmint/tecmint13.txt [+] /home/tecmint/Desktop/tecmint/tecmint8.txt [-] /home/tecmint/Desktop/tecmint/tecmint11.txt [-] /home/tecmint/Desktop/tecmint/tecmint3.txt [-] /home/tecmint/Desktop/tecmint/tecmint4.txt [-] /home/tecmint/Desktop/tecmint/tecmint6.txt [-] /home/tecmint/Desktop/tecmint/tecmint7.txt [-] /home/tecmint/Desktop/tecmint/tecmint9.txt [-] /home/tecmint/Desktop/tecmint/tecmint10.txt [-] /home/tecmint/Desktop/tecmint/tecmint2.txt [-] /home/tecmint/Desktop/tecmint/tecmint5.txt [-] /home/tecmint/Desktop/tecmint/tecmint14.txt [-] /home/tecmint/Desktop/tecmint/tecmint1.txt [-] /home/tecmint/Desktop/tecmint/tecmint15.txt [-] /home/tecmint/Desktop/tecmint/tecmint12.txt
8。 安全性の観点から、「fdupes」の出力を印刷することをお勧めします ファイルに移動してからテキストファイルをチェックして、削除するファイルを決定します。これにより、ファイルが誤って削除される可能性が低くなります。あなたは次のことを行うことができます:
$ fdupes -Sr /home > /home/fdupes.txt
9。 オプション‘-f’ を使用して、一致の各セットから最初のファイルを省略できます。 。
ディレクトリの最初のリストファイル。
$ ls -l /home/$USER/Desktop/tecmint total 20 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (3rd copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (4th copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (another copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
次に、一致する各セットから最初のファイルを省略します。
$ fdupes -f /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint9 (copy).txt /home/tecmint/Desktop/tecmint9 (3rd copy).txt /home/tecmint/Desktop/tecmint9 (another copy).txt /home/tecmint/Desktop/tecmint9 (4th copy).txt
10。 インストールされているfdupesのバージョンを確認してください。
$ fdupes --version fdupes 1.51
11。 fdupesについてサポートが必要な場合は、switch ‘-h’を使用できます。 。
$ fdupes -h Usage: fdupes [options] DIRECTORY... -r --recurse for every directory given follow subdirectories encountered within -R --recurse: for each directory given after this option follow subdirectories encountered within (note the ':' at the end of the option, manpage for more details) -s --symlinks follow symlinks -H --hardlinks normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior -n --noempty exclude zero-length files from consideration -A --nohidden exclude hidden files from consideration -f --omitfirst omit the first file in each set of matches -1 --sameline list each set of matches on a single line -S --size show size of duplicate files -m --summarize summarize dupe information -q --quiet hide progress indicator -d --delete prompt user for files to preserve and delete all others; important: under particular circumstances, data may be lost when using this option together with -s or --symlinks, or when specifying a particular directory more than once; refer to the fdupes documentation for additional information -N --noprompt together with --delete, preserve the first file in each set of duplicates and delete the rest without prompting the user -v --version display fdupes version -h --help display this help message
これですべてです。 Linuxでこれまで重複ファイルを見つけて削除した方法を教えてください。また、このユーティリティについてのあなたの意見を教えてください。貴重なフィードバックを下のコメントセクションに入れてください。私たちを高く評価/共有し、私たちが広まるのを手伝うことを忘れないでください。
私は重複ファイルを削除するためにfslintと呼ばれる別のユーティリティに取り組んでいます。まもなく投稿され、皆さんは読みたくなるでしょう。