Nella gestione degli stream IO dei processi ci sono dei file descriptor: 1 è lo stream di stdout (output normale), 2 è quello di stderr (usato per messaggi di errore).
Nella pipeline ha questa utilità: senza redirection se il comando
2>&1
serve a redirigere l'output di stderr su stdout in modo da avere tutto l'output in un solo stream (in 1, quello di stdout), la & serve a esplicitare che si sta facendo la redirection su uno stream e non su un file chiamato "1" nella cartella corrente.Nella pipeline ha questa utilità: senza redirection se il comando
find
scrivesse qualcosa su stderr, verrebbe printata in console di default (o ovunque punti stderr) e quel testo non verrebbe passato al prossimo comando (grep) che invece riceverebbe solo ciò che si trova in stdout.