Linux中的重定向是将程序的输入流或输出流从默认的位置改变到指定的位置。可以使用特殊的符号来实现重定向操作。(文中command代表命令)
(1)重定向命令列表
命令 说明
command > file 将输出重定向到 file
command < file 将输入重定向到 file
command >> file 将输出以追加的方式重定向到 file
n > file 将文件描述符为 n 的文件重定向到 file
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file
n >& m 将输出文件 m 和 n 合并
n <& m 将输入文件 m 和 n 合并
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入
(2)文件描述符
0:通常是标准输入(STDIN)
1:是标准输出(STDOUT)
2:是标准错误输出(STDERR)
输出重定向:
符号 > 将程序的标准输出重定向到指定位置,会覆盖原有内容。 例如,将程序的输出写入到一个文件中:
[root@localhost test]# command > file
符号 >> 将程序的标准输出追加到指定位置,不会覆盖原有内容。 例如,将程序的输出追加到一个文件中:
[root@localhost test]# command >> file
符号 2> 代表将程序的标准错误输出重定向到指定位置。 例如,将程序的错误输出写入到一个文件中:
[root@localhost test]# command 2>file
符号 2>> :将程序的标准错误输出追加到指定位置。 例如,将程序的错误输出追加到一个文件中:
[root@localhost test]# command 2>> file
& :将程序的标准输出和标准错误输出合并并重定向到指定位置。 例如,将程序的输出和错误输出合并并写入到一个文件中:
[root@localhost test]# command >& file
重定向输入
命令符号格式 | 作用 |
命令 < 文件 | 将指定文件作为命令的输入设备 |
命令 << 分界符 | 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串 |
命令 < 文件 1 > 文件 2 | 文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。 |
符号 < 将指定文件作为程序的标准输入。 例如,将一个文件作为程序的输入:
[root@localhost test]# command < file
从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符)
[root@localhost test]# echo "66"<< *
这些只是一些常见的重定向操作,实际上还有其他更多的重定向符号和用法,可以根据具体需求进行使用。