1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use strict;
use warnings;
use File::Find::Duplicates;
my @dupesets = find_duplicate_files('C:/test/');
foreach my $dupeset (@dupesets) {
print "Duplicate files: ", join(", ", @{ $dupeset->files } ), "\n";
print "MD5: ", $dupeset->md5, "\n";
print "Size: ", $dupeset->size, " Bytes\n";
print "\n";
}
2011-12-31T11:15:04 pqworan genau scheitert es denn?
QuoteDuplicate files: C:/test/05.12.2006 18-45-58_1.jpg, C:/test/3.jpg
MD5: a3ea297cf0252bb79246ebf3ee831b3f
Size: 1109515 Bytes
2011-12-31T12:16:31 pqwo willst du sie denn hin verschieben?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#!/usr/bin/perl use strict; use warnings; use File::Spec; use File::Copy; use File::Find::Duplicates; my $source_path='C:\test'; my $destination_path='C:\doppelt'; ################################################ # Dubletten von Datein finden my @dupesets = find_duplicate_files($source_path); # Alle Gefunden Dateien durch gehen for my $dupeset (@dupesets) { # Mehrfach vorhandene Dateien my @files=@{ $dupeset->files }; # erste Datei behalten shift(@files); #alle anderen Dateien verschieben: for my $source_path (@files) { # Dateinamen extrahieren: my ($volume,$directories,$file) = File::Spec->splitpath( $source_path ); # Zielpfad erstellen my $destination_path=File::Spec->join($destination_path,$file); # Datei Verschieben move($source_path,$destination_path) or warn("Can't move $source_path to destination_path ($!)\n"); } }
1 2 3 4 5
my $dupes = $dupeset->files; shift @$dupes; # eine datei behalten for my $dupe (@$dupes) { move($dupe, 'C:\doppelt\\'); }