folgende Arbeiten aus dem Terminal kein ProblemJava ausführen Kommandozeilenprogramm ‚find‘ gibt Fehler
find testDir -type f -exec md5sum {} \;
Wo testDir
ein Verzeichnis, das einige Dateien enthält (zB Datei1, Datei2 und file3).
Allerdings bekomme ich einen Fehler mit der folgenden in Java
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("find testDir -type f -exec md5sum {} \\;");
Der Fehler ist
find: missing argument to `-exec'
Ich glaube, ich richtig die Zeichen am entkommen. Ich habe verschiedene Formate ausprobiert und kann das nicht zum Laufen bringen.
UPDATE @jtahlborn beantwortete die Frage perfekt. Aber der Befehl hat sich jetzt leicht geändert, um jede Datei im dir zu sortieren, bevor die md5sum berechnet wird und ist wie folgt (Ich habe die ausgezeichnete Antwort für die ursprüngliche Frage bereits akzeptiert, also werde ich jemandem ein Bier kaufen, wenn sie das Format finden können . für diese ich habe jede Kombination habe ich versucht im Anschluss an die Antwort unten ohne Erfolg denken kann)
„testdir -type f -exec md5sum finden {} + |. awk {print $ 1} | Sortierung | md5sum "
NEW UPDATE
Für Rohr, benötigen Sie eine Schale so endete ich damit auf, was funktioniert gut und man kann immer noch die Ausgabe erhalten.
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(new String[]
{
"sh", "-l", "-c", "find " + directory.getPath() + " -type f -exec md5sum {} + | awk '{print $1}' | sort | md5sum"
});
Wie erhalten Sie das Feedback? Eine [SSCCE] (http://SSCCE.org) wäre in Ordnung. –