管道与重定向
只有在开水里,茶叶才能展开生命浓郁的香气.
一、重定向
标准输入、标准正确输出、标准错误输出
![](https://img-blog.csdnimg.cn/img_convert/a29fe32532abebe84cb8701f659849c7.png)
进程在运行的过程中根据需要会打开多个文件,每打开一个文件会有一个数字标识。这个标识叫文件描述符。
进程使用文件描述符来管理打开的文件(FD----file descriptors).
文件描述符:每打开一个程序都会有文件描述
0, 1, and 2, known as standard input, standard output, and standard error
0,标准输入(键盘)
1,标准输出
2,标准错误,
3+,进程在执行过程中打开的其他文件。
&:表示正确错误混合输出
二、输出重定向 (覆盖,追加)
> ----覆盖
>> ----追加
正确输出: 1> 1>> 等价于 > >>
错误输出: 2> 2>>
拓展知识:如果想将错误的指令写到正确的里面操作时 格式为2>&1
如果想将正确的指令写到错误的里面操作时 格式为1>&2
2.1. 案例1:输出重定向(覆盖)
[root@qfedu.com ~]# date 1> date.txt #正确输出--覆盖
# 注意:如果 > 前面什么都不加默认为1,标准正确输出。
2.2.案例2:输出重定向(追加)
[root@qfedu.com ~]# date >> date.txt #正确输出--追加
2.3. 案例3:错误输出重定向
[root@qfedu.com ~]# ls /home/ /aaaaaaaaa >list.txt
ls: cannot access /aaaaaaaaa: No such file or directory
[root@qfedu.com ~]# ls /home/ /aaaaaaaaa >list.txt 2>error.txt #重定向到不同的位置
[root@qfedu.com ~]# cat error.txt
ls: cannot access /aaaaaaaaa: No such file or directory
2.4.正确和错误都输入到相同位置
[root@qfedu.com ~]# ls /home/ /aaaaaaaaa &>list.txt #混合输出到相同文件