Como redirecionar TODAS as saídas de um comando no Linux

3

Estou executando o Gentoo Linux. Um programa ( equery ) gera uma lista massiva de todos os pacotes atualmente instalados ( equery list "*" ). Eu quero descobrir quais deles são instáveis. Equery marca os pacotes instáveis com [~] antes do nome do pacote. A questão é que isso só acontece quando a saída não é redirecionada para qualquer lugar - no terminal. Quando tento exibir a saída ( equery list "*" | grep "~" ) ou redirecioná-la para um arquivo, incluindo stderr ( equery list "*" &> eql.txt ), essa informação não é redirecionada - apenas os nomes dos pacotes.

Então, como eu redireciono TODAS as saídas de um programa?

    
por John Ashpool 02.03.2014 / 19:29

2 respostas

3

Tente colocar seu comando equery em unbuffer .

unbuffer equery list "*" | grep "-"

O comando unbuffer faz com que seu programa de argumento ache que está conectado a um terminal. Você pode ter que adicionar outro nível de cotação ao argumento "*" .

    
por 02.03.2014 / 20:33
1

equery -N desativa a detecção de canais.

Então equery -N list '*' | grep '~' deve fazer o trabalho.

    
por 09.03.2017 / 15:10