출력의 파일 설명자 번호를 얻는 방법과 모든 파일 설명자를 한 번에 리디렉션하는 방법

출력의 파일 설명자 번호를 얻는 방법과 모든 파일 설명자를 한 번에 리디렉션하는 방법

이 명령을 예로 들어보겠습니다.

$ 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

관련 정보