Sprawdzanie które pliki się powtarzają

0

Być może kiedyś już o to pytałem (być może, ale nie jestem pewny...- dałoby się to sprawdzić, czy o to pytałem wcześniej - czy w grę wchodzi analiza po prostu post po poście użytkownika?) lub też może to zrobić jeden z lepszych programów dla mnie Ultrasearch lub też również zachwalany i też taki, z którego korzystałem Locate32 (tu jest według mnie nieco gorzej, bo trzeba sobie tę bazę aktualizować), ale pytanie: czy jeden z tych programów lub też na przykład jakiś inny byłby w stanie porównać pliki - że są takie same... (w obrębie jakiś tam wyznaczonych plików do sprawdzenia)?
No i właśnie pod pojęciem takie same - mam tu na myśli pliki, które są powielone - czyli takie samo wszystko - nazwa itd. ?
Drugorzędne, bardziej zaawansowane pytanie - czy można też znaleźć znaleźć takie same pliki, ale nawet jeśli została zmieniona nazwa?
P.S. Przepraszam, że trochę nie po polsku, ale może jestem rozumiany :-)

0

pełno tego, np polski program https://github.com/qarmin/czkawka lub któryś z zalinkowanych tam np fslint czy dupeguru a także tysiąc innych do wygooglania po haśle "remove duplicate files"

0

Poszukiwanie plików o tej samej nazwie:

#!/usr/bin/perl

my $dir = $ARGV[1] // ".";
my %hits = ();
for my $path (`find $dir`) {
    chomp $path;
    my $fname = $path =~ s#^.*/##r;
    $hits{$fname} //= [];
    push(@{$hits{$fname}}, $path);
}

for my $fname (keys %hits) {
    if(@{$hits{$fname}} > 1) {
        print "$fname:\n  " . join("\n  ", @{$hits{$fname}}) . "\n";
    }
}

Podajesz w parametrze nazwę katalogu, który chcesz przeszukać. Domyślnie, bieżący katalog.

Porównać zawartości można porównać za pomocą sumy kontrolnej md5:

#!/usr/bin/perl

my $dir = $ARGV[1] // ".";
my %hits = ();
for my $md5line (`find $dir -exec md5sum '{}' + 2> /dev/null`) {
    chomp $md5line;
    my ($md5, $path) = split(/\s+/, $md5line, 2);
    $hits{$md5} //= [];
    push(@{$hits{$md5}}, $path);
}

for my $md5 (keys %hits) {
    if(@{$hits{$md5}} > 1) {
        print "$md5:\n  " . join("\n  ", @{$hits{$md5}}) . "\n";
    }
}

Oba kody pod POSIX, więc jak na windzie to na WSLu sobie odpal.

0
matiz17 napisał(a):

Być może kiedyś już o to pytałem (być może, ale nie jestem pewny...- dałoby się to sprawdzić, czy o to pytałem wcześniej

Pytasz o to co kilka mieisęcy od lat.

0

Kiedyś napisałem taki program dla własnych potrzeb i zauważyłem, że problemem jest nie wyszukanie plików o tej samej zawartości binarnej, ale wyszukanie plików o tej samej zawartości wizualnej a różniących się binarnie, np. plików ze zmienioną zawartością metadanych lub obrazków o zmienionym rozmiarze.

0

CCleaner to kiedyś miał, ale teraz to bym uważał na ten software :>

1 użytkowników online, w tym zalogowanych: 0, gości: 1