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 //它的作用是把一些无用的日志信息存入到文件中, 这个文件会 定时清理掉其中的日志信息, 不需要手动删除.