-
Data: 2012-02-13 14:00:32
Temat: Re: zadanie
Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik napisał w wiadomości grup
dyskusyjnych:jh6dp3$km6$...@i...gazeta.pl...
>ktos umialby napisac prostego toola, program
>ktory dla podanego katalogu i podanego rozszerzenia plikow
>wyszukalby pliki ktore maja binarne duplikaty i duplikaty
>te przerenamowal np na koncu dodajac ciag np ".duplicate"
Swego czasu był opublikowany program (tekst źródłowy w C, okienka MS w
czystym API) o dźwięcznej nazwie "dupless".
Algorytm był do wyboru: albo porównywanie nazw plików, albo długości (i ew.
zawartości, daty). Program był "prościutki", ale nie pozwalał sam w sobie na
masowe rename czy delete itp. - choć można wyeksportować listę duplikatów. Z
lenistwa polecam gawk do przetworzenia takiej listy - i sprawa rozwiązana.
W sensie teoretycznym: co oznacza, że dwa pliki są jednakowe? Mają taką samą
zawartość? Ale muszą mieć różne nazwy (tzn. przynajmniej inna ścieżka)...
inaczej nie mówilibyśmy o dwóch plikach. Ale pliki o tej samej zawartości
mogą mieć znaczenie (dla systemu, dla kogoś), np. ktoś może wstawiać do
katalogów plik "audit_ok.txt" o długości zero bajtów... Z drugiej strony dwa
pliki, np. file1.c i file2.c mogą mieć różną zawartość w sensie np. CRLF vs.
LF - ale i tak będzie to "ten sam" kod źródłowy (czyli co? różne czy takie
same?)
W sensie praktycznym - wystarczy sprawdzać długość pliku (pliki o różnych
długościach są różne, te mające 0 bajtów są wszystkie jednakowe), potem
jeżeli długości są takie same to sprawdzać pierwsze n bajtów (tanie, nie
zajmuje wiele czasu), potem liczyć sumę kontrolną (CRC, MD5 do wyboru, pliki
z różnym MD5 są różne i rzadko kiedy, bardzo rzadko, będzie potrzebne
dokładniejsze sprawdzenie, a MD5 ma koszt liniowy)... jeżeli to zawiedzie
sprawdzać bajt po bajcie zgodność (przy m bajtach i k plikach koszt m*k,
ewentualnie można od końca czy jakoś losowo).
slawek
Następne wpisy z tego wątku
- 13.02.12 17:29 Michoo
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump
- 2025-12-24 Podżeganie?
- 2025-12-24 => Senior Algorithm Developer (Java/Kotlin) <=




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem