2017-07-17 3 views
0

Im Moment habe ich die folgenden:Warum funktioniert subprocess.Popen nicht mit find -exec?

subprocess.Popen(["find", ".", "-exec", "sh", "-c", 
    "\"echo 'this will not echo'; touch testing.txt \"", ";"], shell=True) 

Welche nicht zu funktionieren scheint (kein testing.txt Datei erzeugt oder Ausgabe von dem Echo-Anweisung).

Würde der obige Befehl unter Verwendung von subprocess.Popen tatsächlich funktionieren? Ich brauche einige Debug zu tun, wenn so ...

ich im Wesentlichen zu laufen versuchen:

find . -exec sh -c "echo 'test'; touch abcxyz" \; 
+0

Was versuchen Sie zu tun? –

+0

Funktioniert es, wenn Sie den 'Popen'-Aufruf' shell = True' hinzufügen? Oder vielleicht ist es genug, um das Semikolon am Ende zu entfernen. –

+0

Findet der Befehl find_directory -type f -iname '* .json' -exec sh -c sed '/ \\\\\\\\\\\\\\\\\\\\\\' {} >> import.json; echo '' >> import.json; funktioniert in einer Shell? –

Antwort

0

gelöst durch:

subprocess.Popen(["find", ".", "-exec", "sh", "-c", "echo 'this will not echo'; touch testing.txt ", ";"])

shell=True entfernt.

Verwandte Themen