Saya memiliki banyak file gambar duplikat di komputer Windows saya, di berbagai subfolder dan dengan nama file yang berbeda.
Skrip Python atau program freeware apa yang akan Anda rekomendasikan untuk menghapus duplikat?
(Saya sudah membaca pertanyaan serupa ini , tetapi poster di sana menanyakan tentang duplikat visual dengan ukuran file yang berbeda. Milik saya duplikat persis dengan nama file yang berbeda.)
Jawaban:
Jangan Mengandalkan jumlah MD5.
Jumlah MD5 bukan cara yang dapat diandalkan untuk memeriksa duplikat, mereka hanya cara untuk memeriksa perbedaan.
Gunakan MD5 untuk menemukan kemungkinan kandidat duplikat, dan kemudian untuk setiap pasangan membagikan MD5
Melihat saya semakin banyak dipilih oleh orang-orang yang melakukan pendekatan naif untuk mengajukan duplikat Identity, Jika Anda akan bergantung sepenuhnya pada algoritma hash, demi kebaikan, gunakan sesuatu yang lebih keras seperti SHA256 atau SHA512, setidaknya Anda akan mengurangi kemungkinan untuk gelar yang masuk akal dengan memeriksa lebih banyak bit. MD5 sangat lemah untuk kondisi tabrakan.
Saya juga menyarankan orang membaca milis di sini berjudul 'pemeriksaan file': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Jika Anda mengatakan "MD5 dapat secara unik mengidentifikasi semua file secara unik" maka Anda memiliki kesalahan logika.
Dengan kisaran nilai, dari panjang yang bervariasi dari 40.000 byte hingga 100.000.000 byte, total jumlah kombinasi yang tersedia untuk rentang tersebut sangat melebihi jumlah kemungkinan nilai yang diwakili oleh MD5, dengan berat hanya 128 bit.
Mewakili 2 ^ 100.000.000.000 kombinasi hanya dengan 2 ^ 128 kombinasi? Saya pikir itu tidak mungkin.
Cara Paling Naif
Cara yang paling naif, dan cara tercepat, untuk menghilangkan duplikat adalah sebagai berikut.
Fdupes melakukan ini. Dan Anda harus menggunakan perangkat lunak yang menggunakan kriteria yang sama.
sumber
Ini adalah liner satu pada unix seperti (termasuk linux) OS atau Windows dengan Cygwin diinstal:
md5sum (sekitar 50% lebih cepat) dapat digunakan jika Anda tahu tidak ada tabrakan yang sengaja dibuat (Anda akan memiliki kesempatan lebih baik untuk memenangkan 10 lotere utama daripada kesempatan untuk menemukan satu tabrakan md5 yang terjadi secara alami.)
Jika Anda ingin melihat semua dups yang Anda miliki alih-alih menghapusnya cukup ubah
unlink $file
bagianprint $file, "\n"
.sumber
Saya telah menggunakan
fdupes
(ditulis dalam C) danfreedups
(Perl) pada sistem Unix, dan mereka mungkin bekerja pada Windows juga; ada juga yang serupa yang diklaim bekerja pada Windows:dupmerge
,liten
(ditulis dengan Python), dllsumber
Untuk menghapus gambar duplikat di Windows, lihat DupliFinder. Itu dapat membandingkan gambar dengan berbagai kriteria seperti nama, ukuran, dan informasi gambar aktual.
Untuk alat lain untuk menghapus file duplikat lihat artikel Lifehacker ini.
sumber
Alih-alih DupliFinder, coba proyek bercabang sebagai gantinya, DeadRinger . Kami telah memperbaiki banyak bug di proyek asli, menambahkan banyak fitur baru, dan kinerja yang meningkat secara dramatis.
sumber
Salah satu opsi bisa berupa Dupkiller .
sumber