seu exemplo é bastante confuso.
Você normalmente não envia caracteres para o gato.
Você normalmente envia um arquivo para o gato.
No entanto, quando você envia alguns caracteres para o gato, ele imprime os caracteres.
$ echo abc12123 | cat
abc12123
Normalmente você envia um nome de arquivo para o gato
$ cat abc12123
cat: abc12123: No such file or directory
Portanto, observe que o próprio gato lida de maneira diferente com os personagens engraçados transmitidos a ele, em vez de transmiti-los como parâmetro.
$ cat b.b
textofb.b
$ echo b.b | cat
b.b
$ cat b.b
textofb.b
vou usar um exemplo mais simples que o seu
$ echo b.b | xargs cat
textofb.b
veja que imprime o conteúdo de b.b porque asdfasdfs | xargs cat
, enviará a saída de asdfasdfs como um parâmetro para cat.
Então
echo b.b | xargs cat
=
cat b.b
Considerando que echo b.b | cat
não é o mesmo que cat b.b