Bagaimana saya bisa menghapus file duplikat di pohon direktori terpisah?

10

Saya punya dua direktori: old/dan new/. Beberapa file dalam old/adalah duplikat dari file yang ada di new/. Beberapa hanya memiliki nama yang sama, dan beberapa bahkan mungkin memiliki konten yang identik tetapi nama yang berbeda. Saya tidak tertarik pada jalur subdirektori ke file, jadi hanya nama file yang tidak memenuhi syarat yang perlu dipertimbangkan dalam pencocokan.

Saya ingin menghapus file duplikat dari old/, sehingga hanya berisi file yang juga tidak ditemukan di new/. Untuk kasus di mana nama file cocok, tetapi bukan isinya, atau sebaliknya, saya ingin ini terdaftar dalam beberapa log.

Adakah yang mengalami masalah serupa, atau memiliki solusi yang lebih baik daripada meretas bersama skrip (perl atau sejenisnya) dari awal? Sebuah runtime yang didominasi oleh panggilan md5sumpada setiap file dapat diterima.

Kacang P
sumber

Jawaban:

7

Tentu saja! Lihat FSlint :

FSlint adalah utilitas untuk menemukan dan membersihkan berbagai bentuk serat pada sistem file. Yaitu IE yang tidak diinginkan atau bermasalah di file Anda atau nama file. Misalnya, satu bentuk serat yang ditemukannya adalah file duplikat. Ini memiliki GUI dan mode baris perintah.

teks alternatif

FSlint adalah perangkat lunak bebas dan sumber terbuka.

John T
sumber
Itu terlihat cukup dekat untuk apa yang saya inginkan. Terima kasih!
P-Nuts
8

fdupes - menemukan file duplikat dalam satu set direktori tertentu

fdupes new/ old/

-d untuk menghapus

-Tidak untuk jangan tanya

fdupes -N -d new/ old/
Cristian Ciupitu
sumber
Bukankah ini juga akan menemukan (dan menghapus) duplikat dalam setiap direktori? Dengan kata lain, jika baru (atau lama) berisi file duplikat yang mungkin atau mungkin tidak ditemukan dalam file lama, itu juga akan dihapus? Saya tidak berpikir fdupes adalah program yang berbeda seperti yang tersirat oleh argumen Anda "baru" dan "lama".
Stephen Niedzielski