Jak mogę usunąć duplikaty plików z osobnych drzew katalogów?

10

Mam dwa katalogi: old/i new/. Niektóre pliki w old/są duplikatami plików w new/. Niektóre mają tylko tę samą nazwę, a niektóre mogą nawet mieć identyczną treść, ale różne nazwy. Nie interesuje mnie ścieżka podkatalogu do plików, więc w dopasowaniu należy uwzględnić tylko niekwalifikowaną nazwę pliku.

Chcę usunąć zduplikowane pliki old/, aby zawierały tylko pliki, których nie znaleziono również new/. W przypadkach, w których nazwy plików pasują, ale nie zawartość, lub odwrotnie, chcę, aby to było wymienione w jakimś dzienniku.

Czy ktoś napotkał podobny problem lub ma lepsze rozwiązanie niż hakowanie razem (perl lub podobnego) skryptu od zera? Środowisko wykonawcze zdominowane przez wywołanie md5sumkażdego pliku jest dopuszczalne.

Orzechy P
źródło

Odpowiedzi:

7

Oczywiście! Sprawdź FSlint :

FSlint to narzędzie do wyszukiwania i czyszczenia różnych form kłaczków w systemie plików. IE niechciane lub problematyczne cruft w twoich plikach lub nazwach plików. Na przykład jedną z form kłaczków, które znajduje, są duplikaty plików. Ma zarówno GUI, jak i tryby wiersza poleceń.

alternatywny tekst

FSlint to darmowe oprogramowanie typu open source.

John T.
źródło
To wygląda wystarczająco blisko na to, czego chcę. Dzięki!
P-Nuts
8

fdupes - wyszukuje duplikaty plików w danym zestawie katalogów

fdupes new/ old/

-d do usunięcia

-N za nie pytaj

fdupes -N -d new/ old/
Cristian Ciupitu
źródło
Czy to również nie znajdzie (i usunie) duplikatów w każdym katalogu? Innymi słowy, jeśli nowe (lub stare) zawierają zduplikowane pliki, które mogą, ale nie muszą zostać znalezione w starych, to też zostałyby usunięte? Nie sądzę, aby fdupes był programem całkowicie odmiennym, co sugerują twoje argumenty „nowy” i „stary”.
Stephen Niedzielski