コマンド間でファイルを渡すことはできますか?

コマンド間でファイルを渡すことはできますか?

生成されたファイルをあるコマンドから別のコマンドに送信する方法を探しているので、その間にディスクにコピーを保存する必要はありません。たとえば、rarディスクにedファイルがあり、それを開く場合は、次のコマンドを実行できるようにしたいと思います。

unrar x file.rar | kplayer

unrar x file.rar | gpg -c

gpg file.gpg | kplayer 

私はあなたが私が探しているものを理解していると確信しています。unrarstdoutに送信しようとしていますが、kplayerに接続する-p必要があるようですが、画面にのみ送信してください。|私の考えでは、kplayerが標準入力からデータを取得できないためです。

しかし、ファイルをディスクに保存せずに別の場所に転送する方法はありますか?これがメモリにファイルシステムを作成して使用できる最良の方法ですが、そんなに多くのメモリを維持するという考えは気に入らません。

ベストアンサー1

多くのコマンドには書き込みオプションがありますSTDOUT。たとえば、Unrarにはこのpオプションがあります。多くのコマンドには、-組み合わせて読み取るオプションがありますSTDIN。したがって、提供した最初の例は、次のように書き直すことができます。

unrar px file.rar | kplayer -

デフォルトでは、GPGはすでにパイプ入力として機能します。

unrar px file.rar | gpg -c

コマンドのヘルプおよび/またはマニュアル/情報ページが結果の送信をサポートしていることを確認してくださいSTDOUT(多くのコマンドがデフォルトでこれを実行します)。

おすすめ記事