Lendo o seu comentário Acho que você pode criar um arquivo temporário e destruí-lo ao sair do evince .
gpg --output bar.$$.pdf --decrypt foo.pdf.gpg ; evince bar.$$.pdf ; rm bar.$$.pdf
(Observe com $$
você pega o PID da sessão atual do BASH).
Se você quiser aumentar a segurança, crie um pequeno script que execute os comandos acima e wait
o final de evince
em uma subshell ()
. Você pode começar com algo como o abaixo ... chmod u+x foobar.sh
para torná-lo executável.
#!/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 '&'
Você pode querer criar o arquivo temporário no diretório especial que não pode ser lido por outros usuários e talvez sob o /tmp
ou outro que será apagado na próxima reinicialização.