fdupes - Alat Baris Perintah untuk Menemukan dan Menghapus File Duplikat di Linux
Ini adalah persyaratan umum untuk menemukan dan mengganti file duplikat bagi sebagian besar pengguna komputer. Menemukan dan menghapus file duplikat adalah pekerjaan melelahkan yang menuntut waktu dan kesabaran. Menemukan file duplikat bisa sangat mudah jika mesin Anda didukung oleh GNU/Linux, berkat utilitas 'fdupes'.
Apa itu fdupes?
Fdupes adalah utilitas Linux yang ditulis oleh Adrian Lopez dalam Bahasa pemrograman C yang dirilis di bawah Lisensi MIT. Aplikasi ini dapat menemukan file duplikat di kumpulan direktori dan subdirektori tertentu. Fdupes mengenali duplikat dengan membandingkan tanda tangan file MD5 diikuti dengan perbandingan byte-ke-byte. Banyak pilihan yang dapat diberikan dengan Fdupes untuk membuat daftar, menghapus dan mengganti file dengan hardlink ke duplikat.
Perbandingannya dimulai dengan urutan:
perbandingan ukuran > Perbandingan Tanda Tangan MD5 Parsial > Perbandingan Tanda Tangan MD5 Penuh > Perbandingan Byte-to-Byte.
Instal fdupes di Linux
Pemasangan fdupes versi terbaru (fdupes versi 1.51) semudah menjalankan perintah berikut pada sistem berbasis Debian seperti Ubuntu dan Linux Mint.
sudo apt-get install fdupes
Pada sistem berbasis CentOS/RHEL dan Fedora, Anda perlu mengaktifkan repositori epel untuk menginstal paket fdupes.
yum install fdupes
dnf install fdupes [On Fedora 22 onwards]
Catatan: Manajer paket default yum digantikan oleh dnf dari Fedora 22 seterusnya…
Bagaimana cara menggunakan perintah fdupes?
1. Untuk tujuan demonstrasi, mari kita membuat beberapa file duplikat di bawah direktori (misalnya tecmint) seperti:
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
Setelah menjalankan perintah di atas, mari kita verifikasi apakah file duplikat dibuat atau tidak menggunakan perintah 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
Skrip di atas membuat 15 file yaitu tecmint1.txt, tecmint2.txt…tecmint15.txt dan setiap file berisi data yang sama yaitu,
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Sekarang cari file duplikat di dalam folder 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. Telusuri duplikat secara rekursif pada setiap direktori termasuk subdirektorinya menggunakan opsi -r.
Ini mencari di semua file dan folder secara rekursif, tergantung pada jumlah file dan folder, diperlukan beberapa waktu untuk memindai duplikat. Sementara itu, Anda akan disajikan dengan kemajuan total di terminal, kira-kira seperti ini.
$ fdupes -r /home
Progress [37780/54747] 69%
4. Lihat ukuran duplikat yang ditemukan dalam folder menggunakan opsi -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. Anda dapat melihat ukuran file duplikat untuk setiap direktori dan subdirektori yang ditemukan menggunakan opsi -S dan -r secara bersamaan , sebagai:
$ 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. Selain mencari dalam satu folder atau semua folder secara rekursif, Anda dapat memilih dalam dua folder atau tiga folder sesuai kebutuhan. Belum lagi Anda dapat menggunakan opsi -S dan/atau -r jika diperlukan.
fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Untuk menghapus file duplikat sambil menyimpan salinannya, Anda dapat menggunakan opsi '-d'. Kehati-hatian ekstra harus diberikan saat menggunakan opsi ini, jika tidak, Anda mungkin akan kehilangan file/data yang diperlukan dan ingatlah bahwa prosesnya tidak dapat dipulihkan.
$ 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]:
Anda mungkin memperhatikan bahwa semua duplikat terdaftar dan Anda diminta untuk menghapus, baik satu per satu atau rentang tertentu atau semuanya sekaligus. Anda dapat memilih rentang seperti di bawah ini untuk menghapus file dengan rentang tertentu.
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. Dari sudut pandang keamanan, Anda mungkin ingin mencetak keluaran 'fdupes' ke file dan kemudian memeriksa file teks untuk memutuskan file mana yang akan dihapus. Ini mengurangi kemungkinan file Anda terhapus secara tidak sengaja. Anda dapat melakukan:
fdupes -Sr /home > /home/fdupes.txt
Catatan: Anda dapat mengganti '/home' dengan folder yang Anda inginkan. Gunakan juga opsi '-r' dan '-S' jika Anda ingin mencari secara rekursif dan Ukuran Cetak.
9. Anda dapat menghilangkan file pertama dari setiap rangkaian kecocokan dengan menggunakan opsi '-f'.
Daftar pertama file direktori.
$ 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
lalu hilangkan file pertama dari setiap rangkaian kecocokan.
$ 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. Periksa versi fdupes yang terinstal.
$ fdupes --version
fdupes 1.51
11. Jika Anda memerlukan bantuan tentang fdupes, Anda dapat menggunakan tombol '-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
Itu saja sekarang. Beri tahu saya bagaimana Anda menemukan dan menghapus file duplikat hingga saat ini di Linux? dan juga beri tahu saya pendapat Anda tentang utilitas ini. Berikan tanggapan Anda yang berharga di bagian komentar di bawah dan jangan lupa untuk menyukai/membagikan kami dan membantu kami menyebarkannya.
Saya sedang mengerjakan utilitas lain bernama fslint untuk menghapus file duplikat, akan segera memposting dan Anda akan senang membaca.