find md5sum xargs sort
Posted: 11. Aug 2007 18:41
Ich möchte eine übersichtliche MD5-Liste.
Die Essenz meiner bisherigen Versuche:
--------------------------------------- löst die Aufgabe komplett, aber "unsortiert". Dateien eines Verzeichnisses werden zwischen Unterverzeichnissen "eingestreut".
Ein 'sort' auf die erstellte Summenliste funktioniert nicht richtig, da sort einige Sonderzeichen wie "." oder "~" nicht beachtet.
gibt mir eine sortierte, übersichtliche Namen-Liste,
aber dann noch ein '-exec md5sum {}' einzufügen ist nicht valid: Und '-exec' führt keine Funktionen aus(?):
Eine potenzielle formal kurze Lösung funkioniert nicht obwohl der direkte Aufruf in der Shell durchgeht:
Hierbei jedoch wie in der xargs-Lösung:
wird die Grenze von md5sum berührt, das je nach Namen/Pfadlänge schon bei einigen hundert bis einigen tausend übergebenen Argumenten aussteigt.
---------------------------------------
Da ich so nicht weiterkomme
Wie kann ich md5sum hier anbringen? (ohne xargs?) Oder muss ich eine Datei der Namen anlegen und diese mit for und sed (wegen der Sonder/Leerzeichen) an md5sum übergeben?
Oder wie bringe ich sort dazu, ALLE Zeichen zu beachten?
(für eine Nachbehandlung einer erstellten MD5-Liste)
Oder brauche ich md5deep?
Die Essenz meiner bisherigen Versuche:
---------------------------------------
Code: Select all
find -type f -exec md5sum {} \;
Ein 'sort' auf die erstellte Summenliste funktioniert nicht richtig, da sort einige Sonderzeichen wie "." oder "~" nicht beachtet.
Code: Select all
find -type d -exec find {} -maxdepth -type f \;
aber dann noch ein '-exec md5sum {}' einzufügen ist nicht valid:
Code: Select all
find -type d -exec find {} -maxdepth -type f -exec md5sum {} \; \;
Code: Select all
FUNC() {
find ?? -maxdepth -type f -exec md5sum {} \;
}
find -type d -exec FUNC {} \;
find: FUNC: No such file or directory
Eine potenzielle formal kurze Lösung funkioniert nicht
Code: Select all
find -type d -exec md5sum {}/* \;
md5sum: ./DIR/*: No such file or directory
Code: Select all
md5sum DIR/*
Code: Select all
find -type f -print0 | xargs -0 md5sum (häufiger Tip)
---------------------------------------
Da ich so nicht weiterkomme
Wie kann ich md5sum hier anbringen? (ohne xargs?)
Code: Select all
find -type d -exec find {} -maxdepth -type f \;
Oder wie bringe ich sort dazu, ALLE Zeichen zu beachten?
(für eine Nachbehandlung einer erstellten MD5-Liste)
Oder brauche ich md5deep?