![stderr를 stdout으로 리디렉션한 다음 파이프(apt-cache)하는 방법](https://linux55.com/image/182526/stderr%EB%A5%BC%20stdout%EC%9C%BC%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%ED%8C%8C%EC%9D%B4%ED%94%84(apt-cache)%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
stderr
리디렉션 하려고 하는데 여기에 기본적인 내용이 누락된 것 같습니다 stdout
.pipe
파이프에 대한 명령 및 출력:
$ apt-cache show contractor
N: Can't select versions from package 'contractor' as it is purely virtual
N: No packages found
Grep이 작동하지 않습니다. 다음으로 출력해야 합니다 stderr
.
$ apt-cache show contractor |grep virtual
stderr
좋습니다. 다음으로 리디렉션하겠습니다 stdout
.
$ apt-cache show contractor 2>&1 |grep virtual
아니요, 작동하지 않습니다. 왜죠?
명령이 사용하는 파일 설명자를 확인합니다.
$ apt-cache show contractor 1>t ;cat t
$ apt-cache show contractor 2>t ;cat t
N: Can't select versions from package 'contractor' as it is purely virtual
N: No packages found
사용 중인지 확인하세요 stderr
.
리디렉션 순서와 관련이 있나요?
$ apt-cache show contractor |cat 2>&1
아니요
$ apt-cache show contractor 2>&1 |cat 2>&1
아니요
그때 stderr
까지 리디렉션하는 방법은 무엇입니까 ?stdout
pipe
답변1
apt-cache
이는 표준 출력이 tty가 아닌 경우 "조용해"지고 행을 인쇄하지 않기 때문입니다 .
"Quietness"를 0으로 설정하여 이 결정을 무시할 수 있습니다.
$ apt-cache -q=0 show contractor 2>&1 | grep virtual
N: Can't select versions from package 'contractor' as it is purely virtual