shoorick: (Default)
[personal profile] shoorick
Две недели назад сляпал на коленке скрипт:
#!/usr/bin/perl -w
use strict;

use File::Find;
use Digest::file qw(digest_file_hex);

# Переменные
my %hash;   # Хеш списков файлов

print STDERR "Scanning...\n";

# Рекурсивно ищем файлы
find(\&wanted, '.');

print STDERR "\r", ' 'x78, "\rfinished", "\n";

# Выводим результат
print "Same files:\n";
foreach (keys %hash)    {
    my @list = @{$hash{$_}};
    print '=' x 50, "\n", join("\n", @list), "\n" if $#list > 0;
} # foreach

#############################

# И в каждом из них выполняем
sub wanted {
    if (-f) {
        push(@{$hash{digest_file_hex($_, "MD5")}}, $File::Find::name);
        print STDERR "\r", ' 'x78, "\r", $File::Find::name;
    } # if
} # sub
Ищет одинаковые (по содержимому) файлы в текущем каталоге и рекурсивно вглубь, после чего выводит список найденных в STDOUT. Дёшево и сердито. [Не]совпадение имён и размеров файлов роли не играет.

Date: 2006-08-06 04:42 pm (UTC)
From: [identity profile] victorgr.livejournal.com
Скрипт - это хорошо :).
А вот есть ещё программа fdupes - finds duplicate files in a given set of directories.

fdupes

Date: 2006-08-07 04:36 am (UTC)
From: [identity profile] shoorick.livejournal.com
А у меня дома Windows. И без Cygwin...

На работе

Date: 2007-04-04 05:04 am (UTC)
From: [identity profile] shoorick.livejournal.com
А на работе - и Windows, и FreeBSD (я сейчас под ней живу). Сейчас попробую fdupes. Спасибо за наводку!

Date: 2006-08-07 10:27 am (UTC)
From: [identity profile] much-more.livejournal.com
Есть проги, заточенные под поиск похожих картинок. Т.е. им по барабану идентичность файлов.
Я пользовал Image Dupeless & Dup Detector, какая-то из них мне даже нравилась :)

Date: 2006-08-17 08:53 am (UTC)
From: [identity profile] ypq.livejournal.com
дайджест - это хорошо, только нет смысла сравнивать два дайджеста, если размеры файлов отличаются. :)
т.е. я бы для скорости сначала нашел файлы с одинаковой длиной, а уж потом сравнивал их MD5.
впрочем, где-то у меня тоже валялся такой скриптик, правда на ruby.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 17th, 2025 11:57 pm
Powered by Dreamwidth Studios