Linux에서 명령의 모든 출력을 리디렉션하는 방법

Linux에서 명령의 모든 출력을 리디렉션하는 방법

저는 젠투 리눅스를 사용하고 있습니다. 프로그램( equery)은 현재 설치된 모든 패키지( equery list "*")의 대규모 목록을 출력합니다. 나는 그 중 어느 것이 불안정한지 알고 싶습니다. Equery는 불안정한 패키지를 패키지 이름 앞에 [~]로 표시합니다. 문제는 출력이 터미널의 어느 곳으로도 리디렉션되지 않는 경우에만 발생한다는 것입니다. 출력( equery list "*" | grep "~")을 grepping하거나 stderr( )을 포함하여 파일로 리디렉션하려고 하면 equery list "*" &> eql.txt해당 정보는 리디렉션되지 않고 패키지 이름만 리디렉션됩니다.

그렇다면 프로그램의 모든 출력을 어떻게 리디렉션합니까?

답변1

equery 명령을 다음과 같이 래핑해 보십시오.언버퍼.

unbuffer equery list "*" | grep "-"

unbuffer 명령은 인수 프로그램이 터미널에 연결되어 있다고 생각하게 만듭니다. 인수 에 다른 수준의 인용을 추가해야 할 수도 있습니다 "*".

답변2

equery -N파이프 감지를 끕니다.

그래서 equery -N list '*' | grep '~'일을 해야 합니다.

관련 정보