给定一个文件input.txt如果我做类似的事情
grep pattern1 input.txt | grep pattern2 | wc -l
第一条命令的输出是否连续传递(一旦生成)作为第二条命令的输入?
还是管道等到第一个命令完成才开始运行第二个命令?
是的,它们是流水线式的-每个组件的stdout通过FIFO连接到下一个的stdin,并且所有组件都是并行启动的。
这就是为什么
cat some-file | ...tools... >some-file
...通常会导致文件被截断:由于管线是同时启动的,因此最后一部分(some-file
为写入而截断)发生在cat
从输入读取文件完成(或经常甚至开始)之前。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句