2012-06-26 71 views
3

如何將數據寫入標準輸出而不是寫入文件?寫入標準輸出而不是文件

我使用GPG並希望將加密文本打印到標準輸出,而不保存文件。

然而,GPG命令,加密的文本用普通的方式提交:

$> gpg --recipient [email protected] --armor --output encrypted.txt --encrypt example.pdf 

(通過上面的命令,加密的文件保存在encrypted.txt)

我想要做什麼如下所示:

$> gpg --recipient [email protected] --armor --output <STDOUT> --encrypt example.pdf 

加密的消息顯示在控制檯中。

我不想節省硬盤以避免性能損失。

回答

4

通常你使用「 - 」來指定標準輸出,但並不是所有的命令都接受這一點,而我不關心gpg。

例如:

tar -cvzf - foo/ ¦ split -b 50k foobar_ 

意願管 「焦油文件」 到stdout,將它保存到 「foobar_ < 123 ...>」。

+0

就是這樣!謝謝! –

1

基礎上gnupg manual

簡單地忽略--output。

+2

不幸的是,在我的環境中,「gpg --recipient [email protected] --armor --encrypt example.pdf」剛剛生成example.pdf.asc ... –

1

如果您的應用程序不支持「 - 」作爲文件名(應該),那麼還有一個辦法是使用命名管道,但我得承認,這看起來像使用大錘牛刀:

pipe='/tmp/pipe' 
mkfifo "$pipe" 

gpg --recipient [email protected] --armor --output "$pipe" --encrypt example.pdf & 

while read 
do 
    echo "$REPLY" 
done < $pipe 

rm "$pipe" 
+0

感謝您的其他信息:) –

相關問題