Apakah mungkin untuk menemukan file duplikat di disk saya yang sedikit identik tetapi memiliki nama file yang berbeda?
files
duplicate-files
siswa
sumber
sumber
st_size
s, menghilangkan mereka dengan hanya satu yang sama, dan kemudian hanya menghitung md5sums untuk pencocokanst_size
s.Jawaban:
fdupes
dapat melakukan ini. Dariman fdupes
:Di Debian atau Ubuntu, Anda dapat menginstalnya dengan
apt-get install fdupes
. Di Fedora / Red Hat / CentOS, Anda dapat menginstalnya denganyum install fdupes
. Di Arch Linux, Anda dapat menggunakanpacman -S fdupes
, dan di Gentooemerge fdupes
,.Untuk menjalankan pemeriksaan menurun dari root sistem file Anda, yang kemungkinan akan memakan banyak waktu dan memori, gunakan sesuatu seperti
fdupes -r /
.Seperti yang ditanyakan dalam komentar, Anda bisa mendapatkan duplikat terbesar dengan melakukan hal berikut:
Ini akan rusak jika nama file Anda mengandung baris baru.
sumber
fdupes ....... | xargs ls -alhd | egrep 'M |G '
untuk menyimpan file dalam format yang dapat dibaca Manusia dan hanya file dengan ukuran dalam Megabita atau Gigabita. Ubah perintah agar sesuai dengan hasil nyata.du
piped untuksort
memberi tahu Anda.Alat bagus lainnya adalah
fslint
:Pada sistem berbasis debian, Anda dapat menginstalnya dengan:
Anda juga dapat melakukan ini secara manual jika Anda tidak ingin atau tidak dapat menginstal alat pihak ketiga. Cara sebagian besar program tersebut bekerja adalah dengan menghitung checksum file . File dengan md5sum yang sama hampir pasti berisi data yang persis sama. Jadi, Anda bisa melakukan sesuatu seperti ini:
Output sampel (nama file dalam contoh ini sama, tetapi juga akan berfungsi ketika mereka berbeda):
Ini akan jauh lebih lambat daripada alat khusus yang telah disebutkan, tetapi itu akan berhasil.
sumber
st_size
, menghilangkan file yang hanya memiliki satu file dengan ukuran ini, dan kemudian menghitung md5sums hanya antara file dengan yang samast_size
.md5sum {}
denganmd5 -q {}
dangawk '{print $1}'
dengancat
Jawaban singkat: ya.
Versi yang lebih panjang: lihat entri wikipedia fdupes , ini daftar yang cukup bagus dari solusi yang sudah jadi. Tentu saja Anda dapat menulis sendiri, itu tidak bahwa sulit - program hashing seperti
diff
,sha*sum
,find
,sort
danuniq
harus melakukan pekerjaan. Anda bahkan dapat meletakkannya di satu baris, dan itu masih bisa dimengerti.sumber
Jika Anda yakin fungsi hash (di sini MD5) bebas tabrakan di domain Anda:
Ingin nama file yang identik dikelompokkan? Tulis skrip sederhana
not_uniq.sh
untuk memformat output:Kemudian ubah
find
perintah untuk menggunakan skrip Anda:Ini ide dasar. Mungkin Anda harus berubah
find
jika nama file Anda mengandung beberapa karakter. (mis. ruang)sumber
Saya berpikir untuk menambahkan garpu fdupes yang disempurnakan, jdupes , yang menjanjikan lebih cepat dan lebih kaya fitur daripada fdupes (mis. Filter ukuran):
Ini akan secara rekursif menemukan file duplikat lebih besar dari 50MB di direktori saat ini dan menampilkan daftar yang dihasilkan di myjdups.txt.
Catatan, output tidak diurutkan berdasarkan ukuran dan karena tampaknya tidak dibangun, saya telah mengadaptasi jawaban @Chris_Down di atas untuk mencapai ini:
sumber
Wikipedia memiliki artikel ( http://en.wikipedia.org/wiki/List_of_duplicate_file_finders ), dengan daftar perangkat lunak sumber terbuka yang tersedia untuk tugas ini, tetapi sekarang telah dihapus .
Saya akan menambahkan bahwa versi GUI dari fslint sangat menarik, memungkinkan untuk menggunakan mask untuk memilih file mana yang akan dihapus. Sangat berguna untuk membersihkan foto yang digandakan.
Di Linux Anda dapat menggunakan:
2 pekerjaan terakhir pada banyak sistem (windows, mac dan linux) Saya belum memeriksa FSLint
sumber
Inilah pendapat saya:
Ini berbeda karena hanya memiliki hash hingga 1 MB file.
Ini memiliki beberapa masalah / fitur:
Saya menggunakannya untuk membandingkan klip video jadi ini sudah cukup bagi saya.
sumber