Linuxでファイルを参照できる**出力**には4つのタイプがあります。これは本当ですか?

Linuxでファイルを参照できる**出力**には4つのタイプがあります。これは本当ですか?

導き出すことができる結論には4つのタイプがありますか?ストリーム出力コマンドの実行後にCLIにファイルが表示されたくない場合は、Linuxでファイルを参照できますか?

ファイルへの考えられる参照:

  1. すべてのストリーム出力
  2. 標準エラーのみ
  3. 標準出力のみ(標準出力の最終結果を含む)。
  4. stdoutとstderr(stdoutの最終結果を除く)

メモ:

数字4の例は次のとおりですfind / -type f -name php.ini 2>/dev/null。私が知っている限り、このコマンドを使用すると標準エラーや標準出力は発生しません(例外標準出力の最終結果この場合、これは私たちが検索するファイルです(見つかった場合)。

ベストアンサー1

Unixシステムのすべてのプロセスには2つの出力ストリームが接続されています。標準出力(stdout、ファイル記述子1)と標準エラー(stderr、ファイル記述子2)。これらは互いに独立してリダイレクトできます。標準入力ファイル記述子0を使用します。

  • 標準出力をファイルにリダイレクトするには、またはより明示file的な 。廃棄されたデータに置き換えられました。>file1>filefile/dev/null
  • 標準エラーをファイルにリダイレクトするにはfile2>file
  • 標準エラーを標準出力のある場所にリダイレクトするには2>&1
  • 標準出力を標準エラー位置にリダイレクトするには1>&2

プロセスの流れや「最終結果」という概念はありません。標準出力に送信されたすべての項目がプロセスの「結果」と見なされることを願っています。ただし、それ自体が開いたか、他の副作用(ディレクトリからファイルへのリンクを解除するなど)がある一部のファイルにデータを出力しない限り、プロセスの「結果」と見なされます。 )rmまたは場合によっては複数のネットワーク接続を処理しますsshd。さらに、プロセスはプロセスの「結果」と見なすことができる終了状態(「成功」の場合は0、「失敗」の場合は0ではない)を返しますが、これは必ずしもプロセスの出力ストリームに関連しているわけではありません。

ストリームは次にリダイレクトすることもできます。追加モードつまり、ファイルにリダイレクトすると、最初はファイルが切り捨てられず、ストリーム内のすべてのデータがファイルの末尾に追加されます。>>file代わりにを使用してこれを行います>file

質問の意見では、命令は

find / -type f -name php.ini 2>/dev/null

与えられた。リダイレクト(廃棄)ただ標準エラー。標準出力ストリームはまったくリダイレ​​クトされないため、コンソールまたは端末に完全に表示されます。パイプの中央にある場合、標準出力ストリームはパイプ内の次のコマンドの標準入力に供給されます。

おおむね次のようになります。二つ(4つではありません)出力ストリーム。コンテンツの削除など、さまざまな方法で独立してリダイレクトできます。

おすすめ記事