gnu-parallel 加密带有空格或特殊字符的文件?

gnu-parallel 加密带有空格或特殊字符的文件?

我正在尝试使用以下代码加密一堆文件:

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

这可以正常工作,但前提是文件名中没有空格或特殊字符(!或')。除了重新命名所有文件外,还有其他方法可以使此代码正常工作吗?

答案1

看起来引用太多了。请记住,GNU Parallel 假定 {} 正在由 shell 直接解析。尝试删除 {} 和 {/.} 周围的“”:

# 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 {}

相关内容