Linux中Shell重定向解析
在Linux系统下,默认有三个文件定向描述符:标准输入(standard input)、正确输出(standard output)和错误输出(error output)。默认情况下,输入设备为键盘,输出设备为显示器。而重定向则是指改变其默认位置。
1. 输出重定向
输出重定向使用符号gt;表示覆盖输出。具体的命令方式为:COMMAND gt; POSITION。例如:
```
cat /etc/issue(默认文件内容输出到显示器上)
cat /etc/issue gt; /tmp/issue.txt(将其输出重定向到/tmp文件下的issue.txt文件中,则屏幕上并不会显示内容)
cat /tmp/issue.txt(查看issue.txt文件内容,默认输出到屏幕)
```
如果我们多次执行`cat /etc/issue gt; /tmp/issue.txt`,但是issue.txt中只有一份信息,并没有多余重复信息。这是因为gt;表示覆盖输出,每次执行都会擦除原有内容。
2. 追加输出重定向
追加输出重定向使用符号gt;gt;表示追加输出。具体的命令方式为:COMMAND gt;gt; POSITION。例如:
```
我们多次执行命令cat /etc/issue gt; /tmp/issue.txt,则在issue.txt中能看到多次追加的内容。
```
3. 错误重定向
错误重定向也可以分为覆盖输出和追加输出。具体的命令方式为:COMMAND 2gt; POSITION和COMMAND 2gt;gt; POSITION。例如:
```
普通状态下错误命令caat /etc/issue 2gt; 将输出到显示器上。
重定向后的错误命令caat /etc/issue 2gt; 则被重定向至文件中。但是这种情况下,如果命令执行正确了,那么将会被输出到显示器上。
```
4. 合并重定向
合并重定向可以使用符号amp;gt;表示。使用合并重定向时,无论命令输入正确与否,其输入内容都会被保存到指定位置。例如:
```
命令在运行过程中,不管运行是否正确,均被输出到指定文件。
cat /etc/issue amp;gt; /tmp/issue.out
caat /etc/issue amp;gt; /tmp/issue.out
当然,此处我们也可以使用COMMAND gt; POSITION 2amp;1来表示错误输出按照1的输出方式输出。
```
5. 分别重定向
分别重定向可以使用命令:COMMAND gt; POSITION1 2gt; POSITION2。如果命令执行正确,则被输出到POSITION1;如果执行错误,则被输出至POSITION2。例如:
```
cat /etc/issue gt; /tmp/issue1 2gt; issue2
caat /etc/issue gt; /tmp/issue1 2gt; issue2
通过分别cat获取其内容后发现不同的执行结果被定向到不同的输出文件。
```
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。