O |
pegará a saída do comando à esquerda e dará à entrada do comando à direita. O operador >
pegará a saída do comando e a colocará em um arquivo. Isso significa que, no seu exemplo, quando chegar ao |
, não haverá saída; está tudo em a.txt
. Então, o sort
à direita opera em uma string vazia e salva isso em b.txt
O que você provavelmente gostaria de usar é o comando tee
, que irá gravar em um arquivo e stdout como
ls | tee a.txt | sort > b.txt
Embora eu esteja realmente curioso sobre o que você está tentando fazer, já que ls
pode / irá classificar as coisas para você também.