GNU/Linux >> Linux の 問題 >  >> Linux

実際にコマンドである仮想ファイルを作成しますか?

ファイルからの読み取りが実際にstdoutから読み取られるように、仮想ファイルを作成する方法はありますか? コマンドの;ファイルへの書き込みは、実際にはstdinへの書き込みです。 コマンドの?

これまでのところ、これをinotifywaitで判断しました。 ファイルに対して、ファイルが変更されたときにコマンドを呼び出し、ファイルから入力を取得して書き戻します。

inotifywaitが気に入らない ただし、常に再起動する必要があります(そして、常に実行されていることを確認する必要があります)。このファイルはおそらく週に2回しか使用していません。

承認された回答:

名前付きパイプを探している可能性があります。

mkfifo f
{
  echo 'V cebqhpr bhgchg.'
  sleep 2
  echo 'Urer vf zber bhgchg.'
} >f
rot13 < f

パイプに書き込んでも、リスニングプログラムは開始されません。入力をループで処理する場合は、リスニングプログラムを実行し続ける必要があります。

while true; do rot13 <f >decoded-output-$(date +%s.%N); done

複数のプロセスが書き込まれている場合でも、パイプに書き込まれるすべてのデータがマージされることに注意してください。複数のプロセスが読み取っている場合、1つだけがデータを取得します。そのため、パイプは同時発生の状況には適さない場合があります。

名前付きソケットは同時接続を処理できますが、これは基本的なシェルスクリプトの機能を超えています。

スケールの最も複雑な端にあるのはカスタムファイルシステムです。これにより、各openでファイルシステムを設計およびマウントできます。 、write など、プログラム内の関数をトリガーします。最小の投資額は、たとえばPythonの場合、数十行の重要なコーディングです。ファイルを読み取るときにのみコマンドを実行する場合は、scriptfsまたはfusefltを使用できます。


Linux
  1. ターミナルに出没する8つの不気味なコマンド

  2. Linuxターミナルでテキストファイルを作成する4つの方法

  3. Linuxlnコマンド

  1. Linuxのコマンドラインを使用してファイルを作成する

  2. 「dd」コマンドを使用して Linux でスパース ファイルを作成する方法

  3. Linux での仮想ファイルへのファイルの連結

  1. ディレクトリまたはファイルが実際に削除されていることを確認するにはどうすればよいですか?

  2. Linuxで特定のサイズのファイルを作成するには、fallocateコマンドを使用します

  3. その中にディレクトリとファイルを作成するための1つのコマンドlinuxコマンド