Risposte:
Comandi come grep e awk può accettare il input standard (STDIN) come parametro o argomento usando una pipe. Tuttavia, altri come cp e echo ignorare il flusso di input standard e affidarsi esclusivamente al argomenti trovato dopo il comando.
Usando il comando xargs puoi costruire ed eseguire righe di comando dall'input standard, ad esempio nel tuo caso:
echo 5 | xargs echo
Non esiste una regola esatta per sapere se un comando accetta lo standard input, tuttavia puoi avere una nozione leggera usando queste due regole:
Se il comando viene utilizzato per manipolare in qualche modo il contenuto di un file ( grep, sed, awk ecc.), quindi in genere può ricevere input da STDIN.
Se il comando viene utilizzato per manipolare il file stesso (ad es. mv, rm, cp ) o un processo (ad es. kill, lsof ) o per restituire informazioni su qualcosa (ad es. top, find, ps ) allora non è così.