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


2

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

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

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

Answers:


2

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

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

作品!生成的文件名将其空格替换为“\”,但这没有问题,我可以在此之后运行重命名命令。谢啦!
周末2015年

然后你没有删除足够的“。删除更多。记住{}和{/。} 永远不应该在”或“内。
Ole Tange 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.