Terminal pogryzł człowieka: duff
Wszyscy lubimy porządek w plikach i staramy się ten stan osiągnąć na wiele różnych sposobów. Twórcy oprogramowania ułatwiają nam życie jak tylko mogą, a nam pozostaje przebierać w przeróżnych rozwiązaniach tego samego przeznaczenia, choć stworzonych wg innej maniery użytkowej. Rzeczony porządek można uskuteczniać na kilka sposobów i dla każdego ważne będą inne kryteria. Jednak jedną z najistotniejszych kwestii są z pewnością walające się po przeróżnych katalogach kopie takich samych plików, czyli duplikaty. W terminalu można sobie z nimi poradzić na kilka sposobów i kilkoma różnymi narzędziami, jednak mając wybór możemy ocenić, które informacje wyjściowe z takich programów są dla nas ciekawsze. Np. duff – odnajduje duplikaty i po prostu wyświetla pełne ścieżki do takich plików.
Duff nie stara się naprawiać świata za nas i służy jedynie do uzyskania listy plików o takiej samej zawartości. Dokładnie, zawartości – chyba nikt raczej nie przypuszcza, że duff porównuje pliki po nazwie. Koncepcja wyszukiwania duplikatów opiera się w tym programie na kilku założeniach:
- proces porównywania rozpoczyna się jedynie w wypadku takiej samej objętości plików,
- taki sam początek plików warunkiem dla obliczenia ich sum kontrolnych,
- wykrywanie duplikatów przez porównanie sum kontrolnych plików,
- porównywanie zawartości pliku jedynie na wyraźne żądanie użytkownika (parametr „-t”).
Powyższe powoduje, że duff działa sprawnie i szybko, by nie powiedzieć błyskawicznie. Porównanie sum kontrolnych wszystkim skojarzy się przede wszystkim z wyliczeniami md5, ale program stosuje nieco bardziej precyzyjne kryteria – sha1 (domyślnie), sha256, sha384, sha512. Oprócz tej metody, do wyboru mamy kilka sposób prezentowania wyników. Wykorzystując parametr „-r” i w domyślnym formatowaniu, otrzymamy co poniżej:
#~/Muzyka $ duff -r *
2 files in cluster 1 (15969 bytes, digest 76422e2b5dcf23de31a76a50764575b9be9a4187)
upd_lf/505/Spacedisko.sndh
upd_lf/Xyce/Spacedisko.sndh
2 files in cluster 2 (23214 bytes, digest c566f7f4b7b641e363105b5edebf033bb788dd4d)
upd_lf/Leitch_Barry/Viking_Child.sndh
upd_lf/Connolly_Sean/Viking_Child.sndh
2 files in cluster 3 (84662 bytes, digest ebda0df40478549b701bf328da5eda4cc295fb98)
upd_lf/Kijop/Bob_Dylan.sndh
upd_lf/Zbyhoo/Bob_Dylan.sndh
Jak widać, mamy przedstawione wszystkie duplikaty poprzedzone pełną ścieżką do nich. Nagłówek (cluster) możemy formatować za pomocą „-f”. Na tym nie koniec, jeżeli przydatniejsza będzie dla nas prosta lista duplikatów, możemy wykorzystać „-e” – wyświetlone zostaną wtedy tylko powtarzające się pliki (bez pierwszego do którego pasują). Skorzystanie z xargs aż samo ciśnie się pod palce.
#~/Muzyka $ duff -re *
upd_lf/Xyce/Spacedisko.sndh
upd_lf/Connolly_Sean/Viking_Child.sndh
upd_lf/Zbyhoo/Bob_Dylan.sndh
Innymi słowy – bardzo przydatne narzędzie. Na dodatek znajdziemy je w repozytoriach niemal wszystkich dystrybucji.