Cómo redirigir TODA la salida de un comando en Linux

Cómo redirigir TODA la salida de un comando en Linux

Estoy ejecutando Gentoo Linux. Un programa ( equery) genera una lista masiva de todos los paquetes actualmente instalados ( equery list "*"). Quiero saber cuáles de ellos son inestables. Equery marca los paquetes inestables con [ ~] antes del nombre del paquete. El caso es que esto solo ocurre cuando la salida no se redirige a ninguna parte: al terminal. Cuando intento recuperar la salida ( equery list "*" | grep "~") o redirigirla a un archivo, incluido stderr ( equery list "*" &> eql.txt), esa información no se redirige, solo los nombres de los paquetes.

Entonces, ¿cómo redirijo TODA la salida de un programa?

Respuesta1

Intente envolver su comando equery conquitar el búfer.

unbuffer equery list "*" | grep "-"

El comando unbuffer hace que su programa argumento piense que está conectado a una terminal. Quizás tengas que agregar otro nivel de citas al "*"argumento.

Respuesta2

equery -Ndesactiva la detección de tuberías.

Entonces equery -N list '*' | grep '~'debería hacer el trabajo.

información relacionada