O comando de redirecionamento é inesperado

0

Claro que sei que a função strace tem uma opção -o , que pode exportar o resultado do rastreamento em um arquivo local. Mas eu quero usar o comando de redirecionamento (>) aqui .

strace -e trace=file lastb|grep " = 0" >file

Há um problema lógico aqui. O > segue o lastb.Isso não é minha intenção.Mesmo que eu uso um suporte não pode melhorá-lo como segue:

(strace -e trace=file lastb)|grep " = 0" >file

Então, como usar o comando de redirecionamento (>) para obter um arquivo contendo as informações de rastreamento?

    
por yode 09.07.2017 / 15:08

1 resposta

3

strace imprime para stderr , não stdout . Você precisará redirecionar stderr para stdout se quiser canalizá-lo.

strace -e trace=file lastb 2>&1|grep " = 0" > file

Você também pode suprimir a saída normal de lastb redirecionando-a para /dev/null (shorthanded here as &- )

strace -e trace=file lastb 2>&1 >&- | grep " = 0" file

Se você está apenas querendo ver onde lastb está obtendo suas informações, isso geralmente é em /var/log/btmp

    
por 09.07.2017 / 15:42