GNU/Linux >> Belajar Linux >  >> Linux

fdupes – Alat Baris Perintah untuk Menemukan dan Menghapus File Duplikat di Linux

Ini adalah persyaratan umum untuk menemukan dan mengganti file duplikat untuk 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 'fdupes ' utilitas.

Apa itu fdupes?

Fdupes adalah utilitas Linux yang ditulis oleh Adrian Lopez di C Bahasa pemrograman dirilis di bawah Lisensi MIT. Aplikasi ini dapat menemukan file duplikat dalam kumpulan direktori dan sub-direktori yang diberikan. Fdupes mengenali duplikat dengan membandingkan tanda tangan file MD5 diikuti dengan perbandingan byte ke byte. Banyak opsi dapat diteruskan dengan Fdupes untuk mendaftar, menghapus, dan mengganti file dengan tautan keras ke duplikat.

Perbandingan dimulai dengan urutan:

perbandingan ukuran> Perbandingan Tanda Tangan MD5 Sebagian> Perbandingan Tanda Tangan MD5 Penuh> Perbandingan Byte-to-Byte .

Instal fdupes di Linux

Instalasi fdupes versi terbaru (fdupes versi 1.51) semudah menjalankan perintah berikut di Debian sistem berbasis seperti Ubuntu dan Linux Mint .

$ sudo apt-get install fdupes

Di CentOS /RHEL dan Fedora berbasis sistem, 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 buat beberapa file duplikat di bawah direktori (misalnya tecmint ) hanya sebagai:

$ 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 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. Cari duplikat secara rekursif di bawah setiap direktori termasuk sub-direktori menggunakan -r pilihan.

Ini mencari di semua file dan folder secara rekursif, tergantung pada jumlah file dan folder, itu akan memakan 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 -S pilihan.

$ 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 dalam menggunakan -S dan -r pilihan pada saat yang sama, seperti:

$ 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 untuk memilih di 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 mempertahankan salinan, Anda dapat menggunakan opsi ‘-d’ . Perhatian ekstra harus dilakukan saat menggunakan opsi ini, jika tidak, Anda mungkin akan kehilangan file/data yang diperlukan dan mengingat 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 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 periksa file teks untuk memutuskan file apa 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. Juga gunakan opsi ‘-r’ dan ‘-S’ jika Anda ingin mencari secara rekursif dan Ukuran Cetak, masing-masing.

9. Anda dapat menghilangkan file pertama dari setiap set 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 set 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 diinstal.

$ fdupes --version

fdupes 1.51

11. Jika Anda memerlukan bantuan tentang fdupes, Anda dapat menggunakan sakelar ‘-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 untuk semua sekarang. Beri tahu saya bagaimana Anda menemukan dan menghapus file duplikat sampai sekarang di Linux? dan juga beri tahu saya pendapat Anda tentang utilitas ini. Masukkan umpan balik Anda yang berharga di bagian komentar di bawah dan jangan lupa untuk menyukai/membagikan kami dan membantu kami menyebar.

Saya sedang mengerjakan utilitas lain bernama fslint untuk menghapus file duplikat, akan segera diposting dan Anda akan senang membaca.


Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Cara Menemukan File dengan Perintah fd di Linux

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  1. 5 Alat Baris Perintah untuk Menemukan File dengan Cepat di Linux

  2. Bagaimana menemukan file duplikat di Linux

  3. Hapus file .DS_STORE di folder saat ini dan semua subfolder dari baris perintah di Mac

  1. Bagaimana menemukan file duplikat di Linux? Bantuan ada di sini dengan perintah fdupes!

  2. 11 Contoh Perintah Linux diff3 (Bandingkan 3 File Baris demi Baris)

  3. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp