我正在尝试使用以下代码加密一堆文件:
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 {}