Finish finddup
This doesn't look like it ever worked. Now it does.
This commit is contained in:
parent
bcfae857e0
commit
e4c489ce8f
|
@ -6,7 +6,7 @@ finddup - yet another tool for finding duplicates
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
use v5.10;
|
use v5.20;
|
||||||
no autovivification 'fetch';
|
no autovivification 'fetch';
|
||||||
use File::Find;
|
use File::Find;
|
||||||
use File::stat;
|
use File::stat;
|
||||||
|
@ -25,17 +25,17 @@ find(sub {
|
||||||
unless ($files->{$size}{$hash}) {
|
unless ($files->{$size}{$hash}) {
|
||||||
$files->{$size}{$hash} = [];
|
$files->{$size}{$hash} = [];
|
||||||
}
|
}
|
||||||
push $files->{$size}{$hash}, { path => $File::Find::name,
|
push $files->{$size}{$hash}->@*, { path => $File::Find::name,
|
||||||
size => $size,
|
size => $size,
|
||||||
dev => $st->dev,
|
dev => $st->dev,
|
||||||
ino => $st->ino,
|
ino => $st->ino,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
$filesdir
|
$dir
|
||||||
);
|
);
|
||||||
|
|
||||||
for my $size (keys $files) {
|
for my $size (keys $files->%*) {
|
||||||
if (@{ $files->{$size}{""} } == 1) {
|
if (@{ $files->{$size}{""} } == 1) {
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
@ -46,16 +46,14 @@ for my $size (keys $files) {
|
||||||
unless ($files->{$size}{$hash}) {
|
unless ($files->{$size}{$hash}) {
|
||||||
$files->{$size}{$hash} = [];
|
$files->{$size}{$hash} = [];
|
||||||
}
|
}
|
||||||
push $files->{$size}{$hash}, $file;
|
push $files->{$size}{$hash}->@*, $file;
|
||||||
}
|
}
|
||||||
delete $files->{$size}{""};
|
delete $files->{$size}{""};
|
||||||
}
|
}
|
||||||
for my $hash (keys $files->{$size}) {
|
for my $hash (keys $files->{$size}->%*) {
|
||||||
if (@{ $files->{$size}{$hash} } > 1) {
|
if (@{ $files->{$size}{$hash} } > 1) {
|
||||||
for my $file (@{ $files->{$size}{$hash} }) {
|
while (my ($i, $file) = each @{ $files->{$size}{$hash} }) {
|
||||||
unless ($st->dev == $file->{dev} && $st->ino == $file->{ino}) {
|
say "$i: $file->{path}";
|
||||||
say "$file->{path}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
say "";
|
say "";
|
||||||
}
|
}
|
||||||
|
@ -64,4 +62,3 @@ for my $size (keys $files) {
|
||||||
|
|
||||||
|
|
||||||
# vim: tw=132 sw=4 expandtab
|
# vim: tw=132 sw=4 expandtab
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue