¿Cifrar archivos en paralelo con gnu con espacios o caracteres especiales?

¿Cifrar archivos en paralelo con gnu con espacios o caracteres especiales?

Estoy intentando cifrar un montón de archivos con el siguiente código:

find . -name "*.vi" | sort | parallel --gnu -j 4 --workdir "$PWD" '
    echo "Encrypting {/.} ..."
    gpg -r [email protected] -o "/tank/test/{/.}.gpg" -e "{}"
';

Esto funciona bien, pero sólo si los nombres de los archivos no tienen espacios ni caracteres especiales (! o '). Además de cambiar el nombre de todos los archivos, ¿hay alguna manera de hacer que este código funcione?

Respuesta1

Parece demasiadas citas. Recuerde que GNU Parallel asume que {} está siendo analizado directamente por el shell. Intente eliminar "" alrededor de {} y {/.}:

# Avoid typing --gnu ever again
echo '--gnu' >> ~/.parallel/config

find . -name "*.vi" | sort |
  parallel echo Encrypting {/.} ...";" gpg -r [email protected] -o /tank/test/{/.}.gpg -e {}

información relacionada