> 文档中心 > Linux管道与重定向详解

Linux管道与重定向详解


一、管道

将前面命令结果作为参数传递给后面的命令

grep

强大的文本搜索工具

例1: (在profile文件中查询内容有if关键字)

cat profile | grep if

例2: (搜索该目录下名字含有redis的目录或者文件)

ll | grep redis

二、重定向

改变数据输出的位置,方向

2.1、1 out, 2 err

1: 将其正确命令的输出存入到某个文件中

2: 将其正确命令的输出存入到某个文件中

  • ls / 1> log.xml   //查询该目录下的所有文件或者文件夹,并将结果保存到log.xml文件下.
  • ls / > log.xml     //如果输出的是正确的命令, 这里的1是可以省略的, 跟上一个是一样的意思.
  • ls abcd 2> log.xml   //查询该目录下的abcd文件或者目录, 但是已知其是不存在的, 所以是一个                              错误的命令, 将1换成2. 将错误输出存入log.xml文件下.

2.2、> 替换, >> 追加

  • ls / 1>> log.xml    //查询根目录下的所有文件或者文件夹, 并将结果追加到log.xml文件中
  • ls / 1> log.xml      //查询根目录下的所有文件或者文件夹, 并将结果覆盖log.xml文件中

2.3、结合使用(2>&1)

如果你输入的命令并不知道对于错, 这个又该如何解决呢?

  • ls /etc/abc > log.xml 2>&1        //无论该命令对于错, 都将输出结果保存到log.xml中(覆盖)
  • ls /etc/abc >> log.xml 2>&1     //无论该命令对于错, 都将输出结果保存到log.xml中(追加)

2.4、信息黑洞

  • ls /etc/abc >> /dev/null 2>&1  //它的作用是把一些无用的日志信息存入到文件中, 这个文件会                                                   定时清理掉其中的日志信息, 不需要手动删除.