Usar -O
com c
é ignorado, pois nenhum arquivo é extraído . Você obterá o mesmo resultado de qualquer maneira:
$ tar c -O foo | tar t
foo
$ tar c foo | tar t
foo
É por isso que acho seu erro surpreendente, já que tar
não é covarde se você especificar um caminho.
tar
não pode ler os dados do arquivo stdin para criar um arquivo, pois tar
não terá como saber o que é um arquivo - onde um começa ou termina, qual é o caminho e metadados é.