管道ls是否会停止它的执行中途?

dr_*_*ate 8 linux bash pipe

如果我ls folder | head在包含大量文件的目录中运行,则执行时间大约是其50倍ls folder | tail.当head命令ls有足够的(10)行时,命令是否停止执行?

我无法在任何地方找到答案,因为"管道到头"在Google或此处给了我大量无关的结果.

如果答案是否定的,那么是否有更有效的方法来列出一些文件而不是ls完全运行并切断输出head

ntk*_*tki 13

一旦head从它的stdin(stdoutof ls)中读取了足够的行,那么它就会退出并因此关闭stdin.当发生这种情况时,管道被认为是破裂并ls接收到SIGPIPE信号.作为对它的反应,它也会在处理通常所做的一切之前终止.在这种情况下tail,它必须等待ls终止以知道哪些X行是最后一行.