管道与重定向的区别(暂时是个人理解,可能有谬误)

管道是上一个命令的标准输出作为下一个命令的标准输入,可否可以理解为前一个命令的stdout重定向到下一个命令的stdin

 

“-”(减号)的作用在于如果需要stdoout或者stdin的时候,偏偏又没有文件,只有“-”,那么“-”就会被当成stdout或者stdin。一般在管道命令中使用。例如ls -al | split -l 10 - lsroot,这里split命令需要一个输入文件,而管道只能提供上一个命令的标准输出,所有就用"-"类似建立一个临时文件保存上一个ls命令的输出作为split命令的输入文件。

但还有个问题,那些命令需要具体的文件作为输入,那些命令又只是需要上一个命令的输出呢,例如ls -l | more 就可以不需要“-”

你可能感兴趣的:(管道与重定向的区别(暂时是个人理解,可能有谬误))