O redirecionamento para trás é o mesmo que um pipe?

10

No Linux, se você digitar

sort < txtfile

é o mesmo que

cat txtfile | sort
    
por tony_sid 01.05.2011 / 13:48

1 resposta

14

Para sua pergunta de título: Não. Obter stdin do conteúdo do arquivo ( redirecionamento de entrada ) não é o mesmo que canalizar a saída de um programa para a entrada de outro programa.

Mas, como seu cat apenas imprime o conteúdo de um arquivo, o resultado é efetivamente o mesmo nesse exemplo.

Mas até mesmo os itens a seguir produzem resultados muito diferentes:

$ cat * | sort
$ sort < *

Se houver mais de um arquivo correspondente, o último produzirá

-bash: *: ambiguous redirect

já que ele não é tão flexível quanto o anterior, o que catará todos os arquivos correspondentes e os canalizará como entrada para sort .

    
por 01.05.2011 / 13:51