導き出すことができる結論には4つのタイプがありますか?ストリーム出力コマンドの実行後にCLIにファイルが表示されたくない場合は、Linuxでファイルを参照できますか?
ファイルへの考えられる参照:
- すべてのストリーム出力
- 標準エラーのみ
- 標準出力のみ(標準出力の最終結果を含む)。
- stdoutとstderr(stdoutの最終結果を除く)
メモ:
数字4の例は次のとおりですfind / -type f -name php.ini 2>/dev/null
。私が知っている限り、このコマンドを使用すると標準エラーや標準出力は発生しません(例外標準出力の最終結果この場合、これは私たちが検索するファイルです(見つかった場合)。
ベストアンサー1
Unixシステムのすべてのプロセスには2つの出力ストリームが接続されています。標準出力(stdout、ファイル記述子1)と標準エラー(stderr、ファイル記述子2)。これらは互いに独立してリダイレクトできます。標準入力ファイル記述子0を使用します。
- 標準出力をファイルにリダイレクトするには、またはより明示
file
的な 。廃棄されたデータに置き換えられました。>file
1>file
file
/dev/null
- 標準エラーをファイルにリダイレクトするには
file
。2>file
- 標準エラーを標準出力のある場所にリダイレクトするには
2>&1
。 - 標準出力を標準エラー位置にリダイレクトするには
1>&2
。
プロセスの流れや「最終結果」という概念はありません。標準出力に送信されたすべての項目がプロセスの「結果」と見なされることを願っています。ただし、それ自体が開いたか、他の副作用(ディレクトリからファイルへのリンクを解除するなど)がある一部のファイルにデータを出力しない限り、プロセスの「結果」と見なされます。 )rm
または場合によっては複数のネットワーク接続を処理しますsshd
。さらに、プロセスはプロセスの「結果」と見なすことができる終了状態(「成功」の場合は0、「失敗」の場合は0ではない)を返しますが、これは必ずしもプロセスの出力ストリームに関連しているわけではありません。
ストリームは次にリダイレクトすることもできます。追加モードつまり、ファイルにリダイレクトすると、最初はファイルが切り捨てられず、ストリーム内のすべてのデータがファイルの末尾に追加されます。>>file
代わりにを使用してこれを行います>file
。
質問の意見では、命令は
find / -type f -name php.ini 2>/dev/null
与えられた。リダイレクト(廃棄)ただ標準エラー。標準出力ストリームはまったくリダイレクトされないため、コンソールまたは端末に完全に表示されます。パイプの中央にある場合、標準出力ストリームはパイプ内の次のコマンドの標準入力に供給されます。
おおむね次のようになります。二つ(4つではありません)出力ストリーム。コンテンツの削除など、さまざまな方法で独立してリダイレクトできます。