이 명령을 예로 들어보겠습니다.
$ 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