X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=dupemerge;a=blobdiff_plain;f=faster-dupemerge;h=44d0e91a929c361059b4e5a7df6f0ed6252d4699;hp=714d47404d193cdbbf8480e84cb68c00e6ea8d9b;hb=85b26d64c5fe49e33e7946498d5dd6c756c415ce;hpb=f972903a36f186e1083390d396c57a2e4b6b3bb5 diff --git a/faster-dupemerge b/faster-dupemerge index 714d474..44d0e91 100755 --- a/faster-dupemerge +++ b/faster-dupemerge @@ -155,6 +155,7 @@ hard links). S, s - lstat(2) (see source for details) U - unlink(2) . - all inodes with similar attributes done + (123456) - current file size in bytes --sort pass next options (up to --) to sort command @@ -185,7 +186,7 @@ while ($#ARGV >= 0) { } elsif ($arg eq '--zeros') { $collapse_zero = 1; } elsif ($arg eq '--trust' || $arg eq '--skip-compare') { - $skip_compare_preference = 1; + $skip_compares = $skip_compare_preference = 1; } elsif ($arg =~ /^--skip-hash(?:=(\d+)([KkMmGgTt]?))?$/os) { my ($quantity, $unit) = ($1, $2); $unit ||= '_'; @@ -541,7 +542,7 @@ candidate_file: if ($link_done) { delete $inode_to_file_name{$to_inode}->{$to_file}; - $inode_to_file_name{$from_inode}->{$to_file} = undef; + $inode_to_file_name{$from_inode}->{$to_file} = undef unless ($dry_run); $hash_to_inode{$digest} = [ $from_inode ]; $hard_links++; @@ -589,6 +590,7 @@ end_merge: } my $last_time = 0; +my $last_size = 0; while () { my ($weak_key, $size, $dev, $ino, $name) = m/^((\d+) \d+ \d+ \d+ -?[\d.]+) (\d+) (\d+) (.+)\0$/so; @@ -598,7 +600,7 @@ while () { print STDERR "weak_key=$weak_key inode=$inode name=$name\n" if $debug; - if ($size >= $skip_hashes_threshold) { + if ($skip_hashes_threshold && $size >= $skip_hashes_threshold) { $skip_hashes = 1; $skip_compares = 0; } else { @@ -608,8 +610,9 @@ while () { if ($progress) { my $this_time = time(); - if ($this_time != $last_time) { + if ($this_time != $last_time && $size != $last_size) { $last_time = $this_time; + $last_size = $size; print STDERR "($size)"; } }