コマンド実行の時間統計出力が1(stdout)でも2(stderr)でもないので、どのファイル記述に属するのか聞きたいです!
なぜですか?
#
#
#
# time date 1>/tmp/date_1.out 2>&1
real 0m0.00s
user 0m0.00s
sys 0m0.00s
#
#
#
# cat /tmp/date_1.out
Mon Dec 10 11:20:36 BEIST 2017
#
#
#
答え1
stdoutまたはstderrに属していませんdate
。それはstderrに属しますtime
。観察する:
$ ( time date 1>/tmp/date_1.out 2>&1 ) 2>time.out
$ cat time.out
real 0m0.002s
user 0m0.000s
sys 0m0.000s
time
実行出力は、date 1>/tmp/date_1.out 2>&1
のtime
出力に適用されたリダイレクトの影響を受けませんdate
。これはtime
一般的なコマンドではないため可能です。time
つまり、シェルキーワードです。
$ type time
time is a shell keyword
したがって、さまざまなルールに従ってプレイできます。