Ich möchte eine Liste von Dateien erstellen, die Folgendes haben:
- Gleicher Name
- Unterschiedlicher Inhalt
in einem Verzeichnis (einschließlich aller untergeordneten Verzeichnisse und Inhalte).
Wie macht man? Bash, Perl, alles ist in Ordnung.
Daher sollten zwei Dateien mit demselben Namen und demselben Inhalt nicht angezeigt werden.
Antworten:
Update: Tippfehler im Skript behoben: geändert
print $NF
inprint $3
; räumte auch auf und fügte einige Kommentare hinzu.Unter der Annahme , Dateinamen enthalten nicht
\n
die folgenden druckt eine sortierte Liste , die Brüche (wie in: Steuerabschnitt bricht ) bei einzigartigenfile name
, einzigartigmd5sum
und zeigt die entsprechende Gruppe von Dateipfaden.Ausgabe, die nur Dateinamen mit mehreren
md5
s anzeigtAusgabe mit allen gleichnamigen Dateien.
quelle
Hier ist ein Perl-Skript. Führen Sie es in dem Verzeichnis oben im Baum aus, in dem Sie suchen möchten. Das Skript ist abhängig von
find
undmd5
, aber die letztere kann ersetzt werdensha1
,sum
oder ein beliebiges anderes Datei - Hashing - Programm , das auf stdin Eingang akzeptiert und gibt einen Hash auf stdout.quelle
finddup Dieses Tool kann Ihnen auch dabei helfen, Dateien mit demselben Namen oder Inhalt aufzulisten.
quelle
Für diejenigen , die nur eine Liste von Dateinamen sehen möchten, hier ist der relevante Teil der Peter.O ‚s Antwort :
} '
Ich brauche keine md5sums, da ich
fslint-gui
vor dem Skript alle Duplikate lösche .quelle