
아래 코드를 사용하여 여러 파일을 암호화하려고 합니다.
find . -name "*.vi" | sort | parallel --gnu -j 4 --workdir "$PWD" '
echo "Encrypting {/.} ..."
gpg -r [email protected] -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 [email protected] -o /tank/test/{/.}.gpg -e {}