Linux输入输出重定向

Linux输入输出重定向教程

Linux 中大部分命令都具有标准的输入/输出设备端口,重定向就是不使用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文件。

Linux输入输出重定向详解

输入输出重定向

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
command << sep 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串。
command < file1 > file2 将文件 file1 作为命令的输入设备,该命令的执行结果输出到 file2 中。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
command > /dev/null 2>&1 忽略命令所有的输出。

说明

输出重定向就是将输出,重定向到文件或其他地方,输出重定向就是从文件或者其他地方读取输入。

Linux标准设备详解

标准设备

名称 文件描述 含义 设备 说明
STDIN 0 标准输入 键盘 命令在执行时所要的输入数据通过它来取得
STDOUT 1 标准输出 显示器 命令在执行后的输出结果从该端口送出
STDERR 2 标准错误 显示器 命令执行时的错误信息通过该端口送出

说明

文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

Linux输入输出重定向常用实例

实例

实例 描述
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。

说明

Linux 中重定向常用的就是输入与输出重定向,注意 > 与 >> 的区别,>> 是追加写文件。

输出重定向

语法

command > file

案例

我们使用 pwd 命令,输出当前的路径到终端,具体命令如下:

pwd

运行后,终端输出如下:

45_Linux输入输出重定向.png

我们看到,在终端输出了当前命令输出,现在,我们将当前命令的输出重定向到文件中,具体命令如下:

pwd > haicoder.txt

运行后,终端输出如下:

46_Linux输入输出重定向.png

这次,我们看到,终端没有输出命令的结果,因此,此时被重定向到了文件中了,现在,我们使用 cat 命令查看文件内容,具体命令如下:

cat haicoder.txt

运行后,终端输出如下:

47_Linux输入输出重定向.png

我们可以看到,文件中写入了 pwd 命令的结果,即,我们使用了重定向将命令的输出重定向到了文件中。

追加的方式重定向

语法

command >> file

案例

我们使用 pwd 命令,输出当前的路径到终端,具体命令如下:

pwd

运行后,终端输出如下:

48_Linux输入输出重定向.png

我们看到,在终端输出了当前命令输出,现在,我们将当前命令的输出重定向到文件中,具体命令如下:

pwd > haicoder.txt

运行后,终端输出如下:

49_Linux输入输出重定向.png

这次,我们看到,终端没有输出命令的结果,因此,此时被重定向到了文件中了,现在,我们使用 cat 命令查看文件内容,具体命令如下:

cat haicoder.txt

运行后,终端输出如下:

50_Linux输入输出重定向.png

我们可以看到,文件中写入了 pwd 命令的结果,即,我们使用了重定向将命令的输出重定向到了文件中,现在,我们再次执行重定向,具体命令如下:

pwd > haicoder.txt

运行后,我们使用 cat 命令再次查看文件内容,,具体命令如下:

cat haicoder.txt

运行后,终端输出如下:

51_Linux输入输出重定向.png

我们看到,此时文件内容还是一条记录,因为使用 > 重定向会清空原来的文件内容,现在,我们使用 >> 以追加的方式进行重定向,具体命令如下:

pwd >> haicoder.txt

运行后,终端输出如下:

52_Linux输入输出重定向.png

现在,我们使用 cat 命令查看文件内容,具体命令如下:

cat haicoder.txt

运行后,终端输出如下:

53_Linux输入输出重定向.png

我们可以看到,这次文件中写入了两次 pwd 的执行结果,即,我们使用了 >> 将命令执行结果以追加的方式重定向到了文件中。

输入重定向

语法

command < file

案例

我们使用 cat 命令,以输入重定向的方式读取文件内容,具体命令如下:

cat < haicoder.txt

运行后,终端输出如下:

54_Linux输入输出重定向.png

我们看到,在终端输出了文件内容,即,我们使用了输入重定向获取了输入。

忽略命令所有的输出

语法

command > /dev/null 2>&1

案例

我们使用 cat 命令,读取文件内容,具体命令如下:

cat haicoder.txt

运行后,终端输出如下:

55_Linux输入输出重定向.png

我们看到,在终端输出了文件内容,现在,如果我们仅仅是想执行这条命令,但不关心该命令的输出,那么我们可以将该命令的输出重定向到 null 文件中,具体命令如下:

cat haicoder.txt > /dev/null

运行后,终端输出如下:

56_Linux输入输出重定向.png

我们将输出重定向到了 null 文件中,因此屏幕没有任何输出,在该命令的执行过程中,还可能发生错误,如果我们还希望将错误也重定向,那么我们可以使用如下命令:

cat haicoder.txt > /dev/null 2>&1

运行后,终端输出如下:

57_Linux输入输出重定向.png

这样,我们就可以忽略所有的输出了。

Linux输入输出重定向总结

Linux 中大部分命令都具有标准的输入/输出设备端口,重定向就是不使用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文件。