Risposte:
Alla domanda del titolo: No. Ottenere stdin
dal contenuto del file ( reindirizzamento dell'input ) non è lo stesso del piping dell'output di un programma all'input di un altro programma.
Ma, dato che in cat
realtà stai solo stampando il contenuto di un file, il risultato è effettivamente lo stesso in questo esempio.
Ma anche solo i seguenti producono risultati molto diversi:
$ cat * | sort
$ sort < *
Se c'è più di un file corrispondente, quest'ultimo produrrà
-bash: *: ambiguous redirect
dal momento che non è flessibile come il primo, che inserirà tutti i file corrispondenti e li inoltrerà come input sort
.
sort < txtfile
molto più efficiente di cat txtfile | sort
?
sort *
? Nessun uso inutile di cat, nessun uso inutile di indiretto, il più breve da digitare, il più facile da pensare e credo che GNU sort ti tratterà di ottimizzazioni della scalabilità per file molto grandi (non ne sono così sicuro - metà ricordando qualcosa lì)