このコマンドを例に挙げます。
$ time ssh ec2 ls
www apps
real 0m0.554s
user 0m0.004s
sys 0m0.000s
$ time ssh ec2 ls 1>/dev/null
real 0m0.554s
user 0m0.004s
sys 0m0.000s
$ time ssh ec2 ls 2>/dev/null
www apps
real 0m0.554s
user 0m0.004s
sys 0m0.000s
明らかに、ls
出力はfd 1
.outputから来ますtime
。どのファイル記述子を使用しますか?どうやって見つけることができますか?
それ以外に、個別にリダイレクトするのではなく、一度にリダイレクトできますかall>/dev/null
?私は探していません1>/dev/null 2>&1...
答え1
time
標準エラーに書き込みます。
それ以外の理由は、/dev/null
時間の出力ではなく、現在のコマンドの標準エラーを作成しているためです。これは、sキーワードが通常のユーティリティとは異なる方法で解析されるためですtime
。リダイレクトはタイムアウトコマンドの一部です。
コードブロックを使用してすべての出力をリダイレクトします。
{ time ls; } 2> /dev/null
必要に応じて、lsの出力をブロック内の他の場所にリダイレクトできます。これには時間制限があります。
可能なすべてをリダイレクトしてください。
{ time ls 1>&2; } 2> /dev/null