検索と実行:アポストロフィを含むファイル名の処理

検索と実行:アポストロフィを含むファイル名の処理

ファイルを一括暗号化する次のスクリプトがあります。

#!/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、失敗すると、次の-execorは-delete実行されません。

おすすめ記事