GNU-параллельное шифрование файлов с пробелами или специальными символами?

Я пытаюсь зашифровать кучу файлов с помощью кода ниже:

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

Это прекрасно работает, но только если в именах файлов нет пробелов и специальных символов (! Или '). Кроме переименования всех файлов, есть ли способ заставить этот код работать?

1 ответ

Решение

Похоже, слишком много цитат. Помните, что GNU Parallel предполагает, что {} анализируется непосредственно оболочкой. Попробуйте удалить "" вокруг {} и {/.}:

# 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 {}
Другие вопросы по тегам