Saída extra no redirecionamento de entrada

6

Eu tenho uma pasta com três arquivos:

$ ls
a  b  c

Se eu canalizar a saída de ls para wc , obtenho o resultado correto:

$ ls | wc -l
3

No entanto, quando eu especificar a entrada para wc como a saída de ls , recebo texto extra:

$ wc -l <(ls)
3 /dev/fd/63

Alguém pode me explicar o que está acontecendo?

    
por user1717828 17.08.2015 / 19:35

1 resposta

14

wc dirá em qual arquivo ele está trabalhando, se puder. Com o primeiro com o pipe está lendo stdin, não um arquivo, então não relata um nome de arquivo. O segundo, no entanto, você está usando a substituição de processo que apresenta a saída do comando como um arquivo, que wc reporta. Ele relata o descritor de arquivo que foi fornecido para ler.

    
por 17.08.2015 / 19:37