GNU-Parallel-Verschlüsselung von Dateien mit Leerzeichen oder Sonderzeichen?

507
Weekender

Ich versuche, eine Reihe von Dateien mit dem folgenden Code zu verschlüsseln:

find . -name "*.vi" | sort | parallel --gnu -j 4 --workdir "$PWD" ' echo "Encrypting {/.} ..." gpg -r user@myemail.com -o "/tank/test/{/.}.gpg" -e "{}" '; 

Dies funktioniert gut, aber nur, wenn die Dateinamen keine Leerzeichen oder Sonderzeichen (! Oder ') enthalten. Gibt es außer der Umbenennung aller Dateien eine Möglichkeit, diesen Code zum Laufen zu bringen?

2

1 Antwort auf die Frage

2
Ole Tange

Es sieht nach zu viel Zitat aus. Denken Sie daran, dass GNU Parallel davon ausgeht, dass {} direkt von der Shell analysiert wird. Versuchen Sie, "" um {} und {/.} Zu entfernen:

# Avoid typing --gnu ever again echo '--gnu' >> ~/.parallel/config  find . -name "*.vi" | sort | parallel echo Encrypting {/.} ...";" gpg -r user@myemail.com -o /tank/test/{/.}.gpg -e {} 
Funktioniert! Bei den resultierenden Dateinamen werden die Leerzeichen durch "\" ersetzt. Dies ist jedoch kein Problem. Ich kann danach einfach einen Umbenennungsbefehl ausführen. Danke, Mann! Weekender vor 8 Jahren 0
Dann haben Sie nicht genug entfernt. "Entfernen Sie mehr. Denken Sie daran {} und {/.} Sollte * niemals * in * sein oder '. Ole Tange vor 8 Jahren 0