Como executar treliça com comando canalizado no Solaris

1

Como executar um comando de treliça com saída canalizada?

por exemplo.

# truss -leDo /tmp/truss.out tar cvf - dirs/ | gzip -1 > archive.tar.gz

Eu recebo apenas a saída "tar" na treliça, não no gzip!

    
por M_1 13.12.2011 / 08:03

1 resposta

1

Você já tentou usar -f ? Diz a treliça para seguir todos os filhos que o comando original gera. Não tenho certeza se isso funcionará porque o comando tar não está gerando o comando gzip.

A outra opção que pode funcionar é:

truss -leDo /tmp/truss.tar.out tar cvf - dirs/ | truss -leDo /tmp/truss.gzip.out gzip -1 > archive.tar.gz

Mais uma vez, no entanto, não sei se funcionará, mas desta vez é porque não sei o que a treliça faz para STDIN.

Se os dois falharem, você poderá chegar a algum lugar usando a opção -f e agrupando os dois em um shell:

truss -leDo /tmp/truss.out ( tar cvf - dirs/ | gzip -1 > archive.tar.gz )

Este requer o bash, mas pode ser modificado para ser executado sob outros shells.

Tudo isso presume que você deseja que o comando tar e gzip seja separado. Se você não precisar disso, poderá usar a opção -z para tar para que ela faça a compactação.

    
por 13.12.2011 / 08:53