2016 - 2024

感恩一路有你

Linux中Shell重定向解析

浏览量:2301 时间:2024-08-18 14:15:59 作者:采采

在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获取其内容后发现不同的执行结果被定向到不同的输出文件。

```

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。