「時間> time.txt」が正しく機能しません。

「時間> time.txt」が正しく機能しません。

私はLinuxコマンドを学び始めました。>私が知っている限り、シンボルの後ろのファイルに出力を書き込む前にコマンドを実行するこのコマンドを試しています。しかし、私の意見は次の行動とは異なるようですtime > time.txt

nagy@nagy-VirtualBox ~/Dokumentumok/random $ date
2016. márc. 20., vasárnap, 18.14.58 CET
nagy@nagy-VirtualBox ~/Dokumentumok/random $ time

real    0m0.000s
user    0m0.000s
sys 0m0.000s
nagy@nagy-VirtualBox ~/Dokumentumok/random $ date > date.txt
nagy@nagy-VirtualBox ~/Dokumentumok/random $ time > time.txt

real    0m0.000s
user    0m0.000s
sys 0m0.000s
nagy@nagy-VirtualBox ~/Dokumentumok/random $ cat date.txt
2016. márc. 20., vasárnap, 18.15.21 CET
nagy@nagy-VirtualBox ~/Dokumentumok/random $ cat time.txt
nagy@nagy-VirtualBox ~/Dokumentumok/random $

date > date.txtだから期待通りに動作するのに>奇妙にも失敗するようですtime > time.txt。誰でもこれを説明できますか?

これは、Windows 10でホストされているLinux Mint 14.3仮想マシンで発生します。

ベストアンサー1

これ時間コマンドは、ユーザーが思うようには実行されません。実際、その目的は他の命令実行時間を測定することなので、引数なしで(コマンド時間指定なしで)実行することはあまり意味がありません。 (明らかに依然として苦情なしに実行されます!)

ここで見られる具体的な効果は、time統計が標準出力ではなく標準エラーとして出力されることです(タイミング中の出力を妨げないため)。標準出力リダイレクトは標準エラーチャネルには影響しません。この試み:

time ls 2>time.txt

...標準出力ではなく標準エラーをリダイレクトします。の出力はls通常どおり表示されますが(stdoutはリダイレクトされません)、timestderr自体の出力はファイルに移動しますが、これがまさにあなたが達成したいものです。

おすすめ記事