Çift dosyaları bulma (ve silme)


125

Büyük bir müzik koleksiyonum var ve orada bazı kopyalar var. Çift dosyaları bulmak için herhangi bir yolu var mı. En azından bir karma yaparak ve iki dosyanın aynı karmaya sahip olup olmadığına bakarak.

Uzantı dışında aynı adı taşıyan dosyaları bulmak için bonus puanları - Sanırım hem mp3 hem de ogg formatındaki versiyonları olan şarkılarım var.

En kolay yol buysa komut satırını kullanmaktan mutluyum.

Yanıtlar:


138

Bunun için kullanıyorum fdupes. İle depolarından kurulabilecek bir komut satırı programıdır sudo apt install fdupes. Gibi arayabilirsin fdupes -r /dir/ect/oryve dupes listesini basar. fdupes'in ayrıca bazı programları listeleyen basit bir Ana Sayfası ve Wikipedia makalesi vardır.


7
Ayrıca, hangi kopyayı saklamak istediğinizi seçmenize ve diğerlerini silmenize olanak veren (veya isterseniz hepsini saklayabilirsiniz) sağlayan bir "-d" seçeneği vardır.
Matthew Crumley


Fdupes için çift dosyalar yerine çift klasörleri listelemek mümkün mü?
Anderson Green

2
Özyinelemeli bir dizin ağacındaki tüm kopyaların nasıl silineceğini (her dosyanın sadece bir kopyasını bırakarak) nasıl daha ayrıntılı olarak açıklayabilir misiniz? Bunu otomatik olarak yapmak istiyorum, yani hangi dosyanın tutulacağını her zaman belirtmek zorunda kalmadan. Kopyalardan sadece birini seçmelidir.
becko

5
fdupes -r . -d -Nilk örneği kaydetmeli ve kopyaları silmelisiniz. Tek bir klasörü fdupes . -d -Nözyinelemesiz kullanarak başarıyla temizledim
Simon B

61

FSlint bir GUI'ye ve diğer bazı özelliklere sahiptir. Çift kontrol algoritmasının SSS bölümünden açıklaması:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint Fslint'i kurun


12
Teşekkürler. Komut adının "fslint-gui" olduğunu ve komut satırı araçlarının varsayılan olarak $ PATH içerisinde olmadığını unutmayın - bunlar / usr / share / fslint / fslint dizinindedir. Sadece fslint (/ usr / lib / command-not-found) aracılığıyla çalıştırarak hangi pakette olduğuna dair yardım almadığımda kafam karışmıştı.
nealmcb

tam olarak ne gerekli
Tebe

1
@nealmcb Kullanıyorsanız sudo apt-get install fslint, yükleme şu anda fslint-guiyola koyulur ve bu nedenle, sadece yazarak herhangi bir yerden çalıştırabilirim fslint-gui. Nerede fslint-guiyaşadığını yazarak bulabilirsiniz which fslint-gui(bir Python betiğine benziyor).
user29020

55

Kopyaları programs/scripts/bash-solutionsbulabilen ve altında çalışan listesi nix:

  1. dupedit : Birçok dosyayı aynı anda sağlama toplamı olmadan karşılaştırır. Birden fazla yol aynı dosyayı gösterdiğinde, dosyaları kendileriyle karşılaştırmaktan kaçınır.
  2. dupmerge : çeşitli platformlarda çalışır (Win32 / 64, Cygwin, * nix, Linux vb.)
  3. dupseek : Okumaları azaltmak için optimize edilmiş algoritma ile Perl.
  4. fdf : Perl / c çoğu platformda çalışır ve çalışır (Win32, * nix ve muhtemelen diğerleri). MD5, SHA1 ve diğer sağlama toplamı algoritmalarını kullanır
  5. freedups : belirlediğiniz dizinlerde arama yapan kabuk betiği. Aynı iki dosyayı bulduğunda, bunları birbirine bağlar. Şimdi iki veya daha fazla dosya kendi dizinlerinde hala var, ancak verilerin yalnızca bir kopyası diskte saklanıyor; her iki dizin girişi de aynı veri bloklarına işaret eder.
  6. fslint : komut satırı arayüzü ve GUI'ye sahiptir.
  7. liten : Saf Python veri tekilleştirme komut satırı aracı ve md5 sağlama toplamı ve yeni bir bayt karşılaştırma algoritması kullanarak kütüphane. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : Hala bir komut satırı aracı olan, ancak SHA-1 sağlama toplamlarını (Linux, Mac OS X, * nix) kullanan daha hızlı etkileşimli bir modda olan orijinal Liten'in yeniden yazılması)
  9. rdfind : Girdi parametrelerinin (taranacak dizinler) sırasına göre "orijinal / iyi bilinen" kaynaklarda (eğer çok sayıda dizin verilirse) silinmemesi için çift rütbeli bir tanesi. MD5 veya SHA1 kullanır.
  10. rmlint : Komut satırı arayüzü ile hızlı bulucu ve diğer tüyleri de bulmak için birçok seçenek (MD5 kullanır)
  11. ua : Bul (ve benzeri) ile çalışmak üzere tasarlanmış Unix / Linux komut satırı aracı.
  12. findrepe : yinelenen dosyaların verimli bir şekilde aranması için tasarlanmış ücretsiz Java tabanlı komut satırı aracı, fermuarlar ve kavanozlar içinde arama yapabilir (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : Perl ile yazılmış küçük bir script. İşini hızlı ve verimli bir şekilde yapmak. 1
  14. ssdeep : Context Triggered Piecewise Hashing kullanarak neredeyse aynı dosyaları tanımla

4
Bu programlardan herhangi biri yinelenen klasörler bulabiliyor mu (yalnızca yinelenen dosyalar değil mi?)
Anderson Green

3
@AndersonGreen rmlintyinelenen dizinleri bulabilir. rmlint -T dd
oligofren

Ubuntu için, başka bir yol Dosya açmak, verilen bir eklentiyi (örneğin .mp3) aramak (control-f) ve ardından dosya adına göre sıralamaktır; bu, kopyaların elle silinmesine izin verir ve aynı zamanda kopyaların konumlarını gösterir.
axd

6

Veri tekilleştirme göreviniz müzikle ilgiliyse , ilk önce müziğinizi doğru şekilde tanımlamak ve etiketlemek için picard uygulamasını çalıştırın (böylece adları yanlış olsa bile yinelenen .mp3 / .ogg dosyalarını bulursunuz). Picard'ın bir Ubuntu paketi olarak da mevcut olduğunu unutmayın.

Bu, musicip_puidetikete dayanarak yapılan tüm şarkıları kolayca bulabilirsin.


4

Bu işi yapan başka bir betik rmdupe . Yazarın sayfasından:

rmdupe, dosya adından veya uzantısından bağımsız olarak, yinelenen dosyalar için belirtilen klasörlerde arama yapmak için standart linux komutlarını kullanır. Çift adaylar kaldırılmadan önce bayt baytla karşılaştırılır. rmdupe ayrıca kopyaları bir veya daha fazla başvuru klasörüne karşı kontrol edebilir, kaldırmak yerine dosyalara çöp atabilir, özel bir kaldırma komutuna izin verebilir ve aramasını belirtilen boyuttaki dosyalara sınırlayabilir. rmdupe, belirli bir komut için gerçekte herhangi bir dosyayı silmeden ne yapılacağını bildiren bir simülasyon modu içerir.



2

Müzik ile ilgili yinelenen kimlik tespiti ve silinmesi Picard ve Jaikoz tarafından http://musicbrainz.org/ en iyi çözümdür. Jaikoz Ben müzik şarkısını verilere göre otomatik olarak etiketler inanıyorum. Şarkıyı tanımlaması ve tüm meta verilerini ona vermesi için şarkının adına bile ihtiyacınız yok. Her ne kadar ücretsiz sürüm bir koşuda yalnızca sınırlı sayıda şarkıyı etiketleyebilse de, istediğiniz kadar çalıştırabilirsiniz.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.