Essas mensagens são impressas como erros (stderr) em vez de saída regular (stdout).
Somente stdout é canalizado, não stderr. Então, tendo &> /tmp/file
após grep, você está apenas mesclando a saída stdout e stderr de grep
, ele não irá mesclar o stderr de conntrack
Para o seu exemplo, você provavelmente quer algo como:
conntrack -L 2>&1 | grep "dport=6439" > /tmp/file
stderr é o descritor de arquivo 2 e stdout é o descritor de arquivo 1. 2>&1
mescla stderr em stdout.
Colocando 2>&1
em conntrack
, a saída é mesclada antes de ser canalizada para grep
. Não há necessidade de mesclar novamente em grep
.