-x
vim のオプションを使用してファイルを暗号化します。私はこのファイルを書き込むよりも何度も読み取るので、常にcatを使用し、表示されているため暗号化されていることを覚えています。したがって、vimを使用し、パスワードを入力して、:q
。
cat(またはもちろん別のコマンド、もちろん私のパスワードをどこかに渡す)を使用してコンテンツを印刷または取得する方法はありますか?それとも、エディターに入らずにコンテンツのみを印刷するvimオプションがあるのでしょうか?
-x
vim のオプションを使用してファイルを暗号化します。私はこのファイルを書き込むよりも何度も読み取るので、常にcatを使用し、表示されているため暗号化されていることを覚えています。したがって、vimを使用し、パスワードを入力して、:q
。
cat(またはもちろん別のコマンド、もちろん私のパスワードをどこかに渡す)を使用してコンテンツを印刷または取得する方法はありますか?それとも、エディターに入らずにコンテンツのみを印刷するvimオプションがあるのでしょうか?
回答:
オープンソースのvimdecryptをご覧ください。
vim-blowfishで暗号化されたファイルを復号化するためのコマンドラインツール。
バージョン7.3以降、vimは強力な組み込みのフグの暗号化/復号化を提供します。これは、特定の目的ではgnupgによるフィルタリングよりも便利です。残念ながら、結果のファイルはvimでしか読み戻すことができないため、バッチ処理やスクリプトでの使用は困難です。また、vimの依存関係とサイズを持つプログラムがロックを解除する必要がある場合、暗号化されたデータの寿命が問題になります。
Vimdecryptは、vimソースから2つの関連ファイル、blowfish.cとsha256.cを取り出し、単純なコマンドラインツールでそれらをインターフェイスします。データはファイルから読み取られ、復号化されたデータはstdoutに書き込まれます。
vimdecrypt path_to_data
パスワードは、stdin / stdoutリダイレクションを妨げないGNU getpassを介して取得されます。
Vimの構成システムは完全に取り除かれているため、開発された32ビットi386 linux以外のプラットフォームのサポートが壊れている可能性があります。2つの関連ファイルは変更されていないvimプロジェクトから取得されるため、vim.hヘッダーを修正して他のプラットフォームでサポートを復元することは簡単です。
magics = None, b'VimCrypt~02!', b'VimCrypt~03!'
、ファイルをチェックしましたが、それはVimCrypt~01!
:(
これは洗練された解決策ではありません-それは速くて汚いです-しかし、それは単一のファイルで動作し、シェルスクリプトとして使用できます。
これは、以下を実行する3つのコマンドのシーケンスです。
vim -R
-c ":set key= | sav ${filename}.plain | q
cat ${filename}.plain
rm ${filename}.plain
最後に、vimコマンドにパスワードも渡すスクリプトを作成できます。単純なスクリプトとしては、次のようになります。
filename=$1
password=$2
vim -R -c ":set key= | sav ${filename}.plain | q" -- ${filename} <<< $password && cat ${filename}.plain && rm ${filename}.plain
最初の引数はファイル名で、2番目の引数はパスワードです。
もちろん、覚えておくべきことがいくつかあります。
${filename}.plain
。<<< $password
部分を削除します。
:help less
。残念ながら、それでも終了するために押す必要はありq
ません(必要ありません:
)。