用于查看 gpg 加密的 pdf 的一行程序

用于查看 gpg 加密的 pdf 的一行程序

我想使用标准文档查看器打开加密的 PDF 文档,但不将其解密内容保存到我的磁盘/ramdisk。

我已经尝试过类似

gpg --decrypt foo.pdf.gpg | evince /dev/stdin

但这不起作用。

任何事都有帮助!

答案1

阅读您的评论我认为您可以创建一个临时文件并在退出时销毁它表明

gpg --output bar.$$.pdf --decrypt foo.pdf.gpg ; evince bar.$$.pdf ; rm bar.$$.pdf

(请注意,$$获取当前 BASH 会话的 PID)。

如果要提高安全性,可以创建一个小脚本,在子 shell 中执行上述命令并wait结束。您可以从下面的内容开始...使其可执行。evince()chmod u+x foobar.sh

#!/bin/bash

FileToDecript=${1}                 # pass the name as 1st parameter
[ $# != 1 ] && exit 1;             # exit if you forget about it
FileOut="temp.$$.pdf"              # temporary filename with the bash PID
gpg --output $FileOut --decrypt $FileToDecript ;
[ ! $? -eq 0 ] && exit 2;          # exit if failed to decrypt

                                   # The following run in a subshell (...)
( evince $FileOut  &                  # evince runs in background
  wait $!                             # here wait evince ends
  rm $FileOut ) &                     # here remove the file
                                   # the subshell is executed in background `&`

您可能需要在其他用户无法读取的特殊目录中创建临时文件,或者在/tmp另一个目录中创建下次重启时将被删除的临时文件。

相关内容