tar
espera receber uma lista de nomes de arquivos como argumentos de linha de comando. Até onde sei, não pode ser usado para ler um pipeline anônimo (o que ele armazenaria como nome de arquivo e metadados de arquivo?)
$ echo aaa | tar cv > f.tar
tar: Cowardly refusing to create an empty archive
Try 'tar --help' for more information.
Se os seus dados forem um único item ou fluxo lógico, não há necessidade de usar algo como o tar, que é usado para agrupar um conjunto de arquivos separados.
Caso contrário, você terá que gravar os dados em um arquivo primeiro, tar o arquivo e, em seguida, excluir o arquivo.