23.7. Wyszukiwanie plików zdublowanych
Problem
Chcemy znaleźć duplikaty plików, które niepotrzebnie zajmują miejsce na dysku.
Rozwiązanie
Najprostszym rozwiązaniem jest pogrupowanie plików według ich nazwy, a następnie według sumy kontrolnej MD5. Dwa pliki uznaje się za identyczne, jeśli mają taki sam rozmiar i identyczną sumę kontrolną MD5.
Poniższy program pobiera listę katalogów z wiersza polecenia i wyświetla wszystkie zbiory duplikatów. Aby zmodyfikować działanie metody each_set_of_duplicates
, można przekazać do niej blok kodu; na przykład w celu wyświetlenia pytania do użytkownika o to, które pliki zachować, a które usunąć.
#!/usr/bin/ruby # find_duplicates.rb require 'find' require 'digest/md5' def each_set_of_duplicates(*paths) ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.