為了便于對檔案和檔案夾進行加密和解密,同時也為了獲得有關何時完成的一些線索,我想用 gpg 設定一些進度條之王。我正在pv這樣做,因為我不需要密碼,所以這對加密很有效。但是,我不知道如何進行解密,因為它可能會要求我的私鑰密碼。這是我嘗試過的:
#!/bin/bash
if [ "$#" -ne 1 ] || ! [ -f "$1" ]; then
echo "Usage: $0 CIPHERED_FOLDER" >&2
exit 1
fi
echo "Deciphering $1"
pv $1 | gpg -d | tar -xz
如果密碼短語已被快取,則它運行良好,但如果沒有,則失敗。因此,我使用了一種解決方法,將最后一行替換為gpg -d $1 | pv -W | tar -xz
但是,由于我無法知道解密檔案的確切大小,因此無法獲得百分比。
有沒有辦法讓這個作業?在嘗試破譯以將其放入快取之前,我嘗試尋找在腳本中手動詢問密碼短語的方法,但我找不到如何執行此操作。
謝謝
編輯:我只為自己加密檔案以用于安全存盤,gpg 不再要求我提供收件人,因為我已經設定了 default-recipient-self
uj5u.com熱心網友回復:
我設法找到了解決方法。我首先簽署一個簡短的文本,然后將輸出直接扔到 /dev/null 中。這樣,它可以確保在主要解密之前快取密碼。它看起來像這樣:
gpg -o /dev/null --sign <(echo "1234")
echo "Deciphering $1"
pv $1 | gpg -d -q | tar -xz
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341833.html
上一篇:Shell-回圈處理檔案
下一篇:java-通過JavaDefaultExecutor和CommandLine執行shell腳本時如何檢索可能的shell腳本退出代碼?
