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

リダイレクトの順序は?

コンピューターがこのコマンドをどのように読み取るのかよくわかりません。

cat file1 file2 1> file.txt 2>&1

理解できれば、2>&1 標準エラーを標準出力にリダイレクトするだけです。

その論理により、コマンドは次のように私に読み取ります:

  1. ファイルを連結するfile1 およびfile2

  2. stdoutを送信します この操作からfile.txtへ 。

  3. stderrを送信します stdoutへ 。

  4. 終了しますか?

コンピューターが何をしているのかわかりません。私の論理では、コマンドは

cat file1 file2 2>&1 > file.txt

しかし、これは正しくありません。

承認された回答:

割り当てを使用することを考える方が簡単だと思います。

  • > =のようなものです
  • & $のようなものです

あなたは

から始めます
1 = /dev/tty
2 = /dev/tty

次に、最初の例、1> file.txt 2>&1 、します

1 = file.txt
2 = $1           # and currently $1 = file.txt

残して

1 = file.txt
2 = file.txt

逆の場合は、

から始めます。
1 = /dev/tty
2 = /dev/tty

次に2>&1 > file.txt

2 = $1           # and currently $1 = /dev/tty
1 = file.txt

したがって、最終結果は

1 = file.txt
2 = /dev/tty

stdoutのみをリダイレクトしました 、stderrではありません 。


Linux
  1. ファイルの一部を並べ替えますか?

  2. ファイルの行数を数えますか?

  3. ファイル名の番号に基づいて特定の順序でCatファイル?

  1. C fopen と open

  2. .txt ファイルに書き込みますか?

  3. ファイル内で \n を grep する方法

  1. tcpdumpのフィルタリング:カオスからの順序の作成

  2. Linux –すべてがファイルですか?

  3. cp -L 対 cp -H