Chcę wygenerować listę plików, które mają:
- Takie samo imię
- Różne treści
w katalogu (w tym wszystkie katalogi i treści potomne).
Jak zrobić? Bash, perlu, wszystko jest w porządku.
Zatem dwa pliki o tej samej nazwie i tej samej zawartości nie powinny się wyświetlać.
Odpowiedzi:
Aktualizacja: poprawiono literówkę w skrypcie: zmieniono
print $NF
naprint $3
; również uporządkowałem i dodałem kilka komentarzy.Zakładając, że nazwy plików nie zawierają
\n
, następujące polecenie wypisuje posortowaną listę, która łamie się (jak w: łamie kontrolę sekcji ) w unikatowyfile name
, unikalny sposóbmd5sum
i pokazuje odpowiednią grupę ścieżek do plików.Dane wyjściowe pokazujące tylko nazwy plików zawierające wiele
md5
sDane wyjściowe pokazujące wszystkie pliki o tej samej nazwie.
źródło
Oto skrypt Perla. Uruchom go w katalogu na górze drzewa, które chcesz przeszukać. Skrypt zależy od
find
imd5
, ale ten ostatni można zastąpić programemsha1
,sum
lub dowolnym innym programem do haszowania plików, który akceptuje dane wejściowe na standardowym wyjściu i generuje skrót na standardowym wyjściu.źródło
finddup to narzędzie może również pomóc w wylistowaniu plików o tych samych nazwach lub treści.
źródło
Dla tych, którzy chcą zobaczyć tylko listę nazw plików, tutaj jest odpowiednia część Peter.O jest odpowiedź :
} ”
Nie potrzebuję sum md5, ponieważ używam
fslint-gui
przed skryptem, aby usunąć wszystkie duplikaty.źródło