Linux给程序提供三种输入、输出(I/0)类型:
标准输入(STDIN) -0(数字表示) 默认接受来自键盘的输入
标准输出(STDOUT)-1(数字表示) 默认输出到终端窗口
标准错误输出(STDERR)-2(数字表示) 默认输出到终端窗口
重定向:即为改变默认输入和输出的默认位置
在Linux中,可以使用不同的操作符号将输入和输出进行重定向 :
1. 符号 > 把标准输出(STDOUT)重定向到文件,但会覆盖文件原来内容
2. 符号 >> 在原有标准输出(STDOUT)基础上,会在重定向文件尾追加内容
3. 符号 2> 把标准错误输出(STDERR)输出重定向到文件,但会覆盖文件原来内容
4. 符号 2>> 把标准错误输出(STDERR)输出重定向到文件,会在重定向文件尾追加内容
5. 符号 &> 把所有输出重定向到文件,但会覆盖重定向文件内容
6. 符号 &>> 将所有输出进行重定向,会在重定向文件尾进行追加
例:
前提:在目录/root/test/下创建两个文件testa和testb
[root@localhost ~]# cd /root/test/
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 27 01:13 testa
-rw-r--r--. 1 root root 0 Jul 27 01:14 testb
[root@localhost test]# cat testa
a
[root@localhost test]# cat testb
b
[root@localhost test]#
1.把文件testa标准输出重定向到testb上,并覆盖testb文件上的内容。
[root@localhost test]# cat testa > testb
[root@localhost test]# cat testb
a
[root@localhost test]#
2.把文件testa标准输出重定向到testb上,在testb文件的基础上追加内容输出内容。
[root@localhost test]# cat testa >> testb
[root@localhost test]# cat testb
b
a
[root@localhost test]#
3 .把文件testc(未创建)文件错误输出重定向到testb上,并覆盖之前testb文件上。
[root@localhost test]# cat testc 2> testb
[root@localhost test]# cat testb
cat: testc: No such file or directory
[root@localhost test]#
4.把文件testc(未创建)文件错误输出重定向到testb上,testb文件上进行追加内容。
[root@localhost test]# cat testc 2>> testb
[root@localhost test]# cat testb
b
cat: testc: No such file or directory
[root@localhost test]#
5.把所有输出重定向到文件,但会覆盖重定向文件内容。
[root@localhost test]# cat testb
b
[root@localhost test]# vim testb
[root@localhost test]# cat testb
b
[root@localhost test]# cat testc &> testb
[root@localhost test]# cat testb
cat: testc: No such file or directory
[root@localhost test]#
6.将所有输出进行重定向,在重定向文件尾进行追加
[root@localhost test]# cat testc &>> testb
[root@localhost test]# cat testb
b
cat: testc: No such file or directory
[root@localhost test]#
备注:
输入 符号 < 表示输入重定向,下面只列出一个例子。将tr ‘a-z’ ‘A-Z’ 的输出作为/tmp/1/2文件的输入。
```
[root@localhost /]# tr 'a-z' 'A-Z' < /tmp/1/2(只是临时对于/tmp/1/2有效)
AAA
BBB
CCC
DDDDDDD
$$$$#@!^^&&*&
123333333
[root@localhost /]#