tuyaux vs redirections

23

J'utilise des tuyaux et des redirections depuis longtemps et je viens de réaliser que je ne sais pas exactement en quoi ils sont différents. Je sais juste que si vous souhaitez stocker la sortie dans un fichier, vous utilisez>. Sinon, la plupart du temps, vous utilisez simplement |. Quelqu'un peut-il expliquer la différence entre les tuyaux et les redirections?

tony_sid
la source

Réponses:

25

Les deux font la même chose de base; ils redirigent un descripteur de fichier du processus exécuté. La différence réside dans la façon dont. Un canal relie la sortie standard d'un processus à la sortie stdin d'un autre, tandis que la redirection redirige depuis / vers un fichier ( >de sortie standard vers un fichier, <d'un fichier vers stdin).

Ignacio Vazquez-Abrams
la source
1
La distinction s'estompe sous Linux et d'autres systèmes qui l'ont /dev/fd. Par exemple, si vous exécutez echo foo > >(somecommand), il se développera echo foo > /dev/fd/3. C'est toujours une redirection, mais vers un processus.
user1686