ファイルを一括暗号化する次のスクリプトがあります。
#!/bin/bash
find "/some/dir" -type f -exec bash -c "gpg -e -r [email protected] '{}' && rm '{}'" \;
ファイル名にアポストロフィが含まれていない場合、スクリプトは正常に動作します。その後、gpgは誤った構文のエラーを出力します。これらのファイルをどうすればいいですか?
ベストアンサー1
シェルを呼び出すことなくこれを行うことができると思います。
find "/some/dir" -type f -exec gpg -e -r [email protected] {} \; -exec rm {} \;
または
find "/some/dir" -type f -exec gpg -e -r [email protected] {} \; -delete
これは-exec ... \;
条件付きの役割も果たすため、機能する必要があります。したがってgpg
、失敗すると、次の-exec
orは-delete
実行されません。