<オール>
Linux
パイプはデータをディスクに保存しません。 /bin/エコー フー | grep bar はファイルを作成しません。 strace -f sh -c '/bin/echo foo | grep bar'
を試す パイプラインの実行時にシェルによって行われたすべてのシステム コールを表示します。 echo
シェル組み込みなので、 /bin/echo
をお勧めします シェルに実行可能ファイルを実行させます。
/tmp
ディスク上にある必要はありません。 tmpfs にマウントできます (つまり、仮想メモリによってサポートされます)。再起動すると /tmp
が空になることに注意してください その場合は /var/tmp
を使用してください 残しておきたいもののために。
あなたがやっていることは、ファイルにデータを入れている場合、それはパイプを使用していません。ファイルが通常のファイルではなく fifo である場合、それは単なる名前付きランデブーであり、データは含まれていません。 ls -l を使用して確認してください。
また、ユーザーが所有するプロセス内のパイプを通過しているものをユーザーが見ないようにしたい場合は、ほとんど SOL であることに注意してください。strace
mmaped 共有メモリの読み取り/書き込みを除いて、プロセスがプロセス外のものと対話するすべてのことを検査できます。 ltrace
さらに侵襲的です。ローカル ユーザーが root を持つシステムでプログラムが実行される場合、それらを停止することはまったくできません。 Unix では、ルートは何でもでき、その目的のための強力なツールがあります。