管道(使用符号“|”表示)用来连接命令
命令1 | 命令2 | 命令3 | …
–
将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN
–
STDERR默认不能通过管道转发,可利用2>&1 或|& 实现
–
最后一个命令会在当前shell进程的子shell进程中执行用来
–
组合多种工具的功能
ls | tr'a-z' 'A-Z'
示例:
将/home 里面的文件打包,但打包的数据不是记录到文件,而是传送到stdout,经过管道后,将tar -cvf-/home 传送给后面的tar -xvf-, 后面的这个-则是取前一个命令的stdout,因此,就不需要使用临时file了
tar -cvf-/home | tar -xvf-