我想一次解密多个文件并检查 gpg 状态以验证它们的一致性。问题是 --output 选项不能与 --multiline 参数一起使用,并且正常的 STDOUT 重定向被忽略。
find -name '*.gpg' | gpg --multifile --decrypt >/dev/null
重定向被忽略。正常文件已创建。
>find -name '*.gpg' | gpg --multifile --decrypt --output=/dev/null
gpg: --output doesn't work for this command
如何通过单个 gpg 调用来实现这个目标?
答案1
gpg --decrypt
每个文件只需调用一次:
find . -type f -name '*.gpg' \
-exec gpg --decrypt --output /dev/null {} ';'
该--output
选项与 不兼容--multifile
。
答案2
假设您使用 Bash >= 4.0:
shopt -s nullglob
shopt -s globstar
for file in ./**/*.gpg; do
gpg --decrypt --output=/dev/null "$file"
done