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

相關內容