GNU/Linux >> Linux の 問題 >  >> 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 では、ルートは何でもでき、その目的のための強力なツールがあります。


    Linux
    1. Fifoと一時ファイルまたはパイプを使用する目的は?

    2. すべてのTmuxスクロールバックをファイルに書き込みますか?

    3. 一時データの疑似ファイル?

    1. リダイレクトとパイプ出力?

    2. Pythonにはargc引数がありますか?

    3. rm はどのように機能しますか? rm は何をしますか?

    1. Curlにはタイムアウトがありますか?

    2. wc -l は、行末文字がない場合、ファイルの最後をカウントしません

    3. ~ (チルダ) という名前のファイルをホーム ディレクトリに置く