Compare commits
2 Commits
bd73933105
...
e4c489ce8f
Author | SHA1 | Date |
---|---|---|
Peter J. Holzer | e4c489ce8f | |
Peter J. Holzer | bcfae857e0 |
|
@ -6,7 +6,7 @@ finddup - yet another tool for finding duplicates
|
|||
|
||||
=cut
|
||||
|
||||
use v5.10;
|
||||
use v5.20;
|
||||
no autovivification 'fetch';
|
||||
use File::Find;
|
||||
use File::stat;
|
||||
|
@ -25,17 +25,17 @@ find(sub {
|
|||
unless ($files->{$size}{$hash}) {
|
||||
$files->{$size}{$hash} = [];
|
||||
}
|
||||
push $files->{$size}{$hash}, { path => $File::Find::name,
|
||||
size => $size,
|
||||
dev => $st->dev,
|
||||
ino => $st->ino,
|
||||
};
|
||||
push $files->{$size}{$hash}->@*, { path => $File::Find::name,
|
||||
size => $size,
|
||||
dev => $st->dev,
|
||||
ino => $st->ino,
|
||||
};
|
||||
}
|
||||
},
|
||||
$filesdir
|
||||
},
|
||||
$dir
|
||||
);
|
||||
|
||||
for my $size (keys $files) {
|
||||
for my $size (keys $files->%*) {
|
||||
if (@{ $files->{$size}{""} } == 1) {
|
||||
next;
|
||||
}
|
||||
|
@ -46,16 +46,14 @@ for my $size (keys $files) {
|
|||
unless ($files->{$size}{$hash}) {
|
||||
$files->{$size}{$hash} = [];
|
||||
}
|
||||
push $files->{$size}{$hash}, $file;
|
||||
push $files->{$size}{$hash}->@*, $file;
|
||||
}
|
||||
delete $files->{$size}{""};
|
||||
}
|
||||
for my $hash (keys $files->{$size}) {
|
||||
for my $hash (keys $files->{$size}->%*) {
|
||||
if (@{ $files->{$size}{$hash} } > 1) {
|
||||
for my $file (@{ $files->{$size}{$hash} }) {
|
||||
unless ($st->dev == $file->{dev} && $st->ino == $file->{ino}) {
|
||||
say "$file->{path}";
|
||||
}
|
||||
while (my ($i, $file) = each @{ $files->{$size}{$hash} }) {
|
||||
say "$i: $file->{path}";
|
||||
}
|
||||
say "";
|
||||
}
|
||||
|
@ -64,4 +62,3 @@ for my $size (keys $files) {
|
|||
|
||||
|
||||
# vim: tw=132 sw=4 expandtab
|
||||
|
||||
|
|
14
finddup2
14
finddup2
|
@ -6,7 +6,7 @@ finddup - yet another tool for finding duplicates
|
|||
|
||||
=cut
|
||||
|
||||
use v5.10;
|
||||
use v5.20;
|
||||
no autovivification 'fetch';
|
||||
use File::Find;
|
||||
use File::stat;
|
||||
|
@ -25,11 +25,11 @@ find(sub {
|
|||
unless ($haystack->{$size}{$hash}) {
|
||||
$haystack->{$size}{$hash} = [];
|
||||
}
|
||||
push $haystack->{$size}{$hash}, { path => $File::Find::name,
|
||||
size => $size,
|
||||
dev => $st->dev,
|
||||
ino => $st->ino,
|
||||
};
|
||||
push $haystack->{$size}{$hash}->@*, { path => $File::Find::name,
|
||||
size => $size,
|
||||
dev => $st->dev,
|
||||
ino => $st->ino,
|
||||
};
|
||||
}
|
||||
},
|
||||
$haystackdir
|
||||
|
@ -50,7 +50,7 @@ find(
|
|||
unless ($haystack->{$size}{$hash}) {
|
||||
$haystack->{$size}{$hash} = [];
|
||||
}
|
||||
push $haystack->{$size}{$hash}, $file;
|
||||
push $haystack->{$size}{$hash}->@*, $file;
|
||||
}
|
||||
delete $haystack->{$size}{""};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue