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

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

Estou executando o Gentoo Linux. Um programa ( equery) gera uma lista enorme de todos os pacotes atualmente instalados ( equery list "*"). Quero descobrir quais deles são instáveis. Equery marca os pacotes instáveis ​​com [ ~] antes do nome do pacote. O problema é que isso só acontece quando a saída não é redirecionada para lugar nenhum - no terminal. Quando tento usar o grep na saída ( equery list "*" | grep "~") ou redirecioná-la para um arquivo, incluindo stderr ( equery list "*" &> eql.txt), essas informações não são redirecionadas - apenas os nomes dos pacotes.

Então, como redireciono TODA a saída de um programa?

Responder1

Tente agrupar seu comando equery comremover buffer.

unbuffer equery list "*" | grep "-"

O comando unbuffer faz seu programa de argumento pensar que está conectado a um terminal. Talvez seja necessário adicionar outro nível de citação ao "*"argumento.

Responder2

equery -Ndesativa a detecção de tubos.

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

informação relacionada