管道和I/O重定向

 管道

  管道是Linux系统提供的多任务协调机制的一种;

  “|”为管道符;管道符左边命令的输出作为右边命令的输入;

  管道分为匿名管道、命名管道(使用mkfifo创建,不介绍);

  举例:

ls -la | grep "nodejs"  //查找当前目录下包含“nodejs”的文件或者文件夹

解释:
    管道左边的ls -la 的输出本来要输出到屏幕中,但是它将输出流直接流入管道中,作为grep的输入;

I/O重定向

  Linux提供的一种多任务协调机制;经常伴随着管道使用;

  所谓的I/O重定向就是:把输出给A的重定向给B,或者从A处获得输入重定向到B处获取;

  I/O重定向分为隐式、显式;

  I/O重定向符号为:“>”(输出重定向)    ">>"(追加重定向,防止覆盖原来的数据)       “<”(输入重定向)

  举例输出重定向:

ls -la > ./abc.txt  //将ls列出的文件信息输入重定向写入abc.txt文件中,原本要写入到屏幕中  [此时是显式I/O输出重定向]
ls -la | grep "nodejs" //在匿名管道处,使用了隐式I/O输出重定向,ls输出流本来流向屏幕,但是改道至管道中,这其中是I/O重定向的作用

  举例输入重定向:

cat < ./abc.txt  //将abc.txt中的内容作为输入
cat < ./abc.txt | grep "nodejs" > ./bbc.txt //重定向输入,重定向输出 
原文地址:https://www.cnblogs.com/RocketV2/p/5797201.html