"시간 > 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 자체의 출력은 파일로 이동하는데, 이것이 바로 여러분이 달성하고자 하는 것입니다.

관련 정보