2012-02-22 4 views
7
私は&は声明の中で意味いただきました!知っていただきたいと思い

いただきました!2> 1>を/ dev/null 2>&1>/devの違い/ nullに

2>&1 > /dev/null 

そのリダイレクトstderrをstdoutにして、ビットバケットに何が&それにある?

2>1 >/dev/null 
+2

確かに、 "1"という名前のファイルにstderrを出力したいのであれば。 – cHao

+1

これは役に立ちますかhttp://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/ – KK99

+0

@cHao:得点ポイント。 – kailash19

答えて

7

&は、ファイルディスクリプタを意味します

は、私は次のようにそれを使用することができます。 2>11

はまた、リダイレクトが順番に起こるというファイルにstderrをリダイレクトしながらそう2>&1は、現在で指し示すものは何でもstdoutにstderrをリダイレクトします。したがって、2>&1 >/dev/nullと言うと、stderrが現在ポイントしているもの(おそらくnoopです)を指すようにstderrをリダイレクトしてから、stdoutを/ dev/nullにリダイレクトします。あなたはおそらく>/dev/null 2>&1

+0

だから、&FDに伝える。私の頭の中で質問してください:なぜ2(標準エラー)の場​​合にそれを使用していないのですか? owシェルは2つの(&がついていない)がFDであることを知っていますか? – kailash19

+0

どういう意味ですか?構文は、 "fd"スロットに使用している番号に関係なく、fd> fileまたはfd>&fdです。 – tripleee

+1

kailash19:上記の記事を読んでください。 '... 2> 1はstderrを1と呼ばれるファイルにリダイレクトします。だからそれを試してください: 'printf" xxx \ n "2> 1; ls -l 1 'である。ファイルはありますが空ですが、xxxが画面に表示されます。 stderrの出力を 'myCmd 2/tmp/myCmd.stderr.out.txt'のようなファイルにリダイレクトするのは合法です。しかし、これはstdout '&1'とstderr '&2'との処理とは異なります。これは完全に直感的な構文ではありません。私はそれを非常に頻繁に使用する必要はないので、たとえ10歳以上であっても、私は新しいものか別のものをしたいのですが、これを見なければなりません。皆さんお元気で。 – shellter

関連する問題