本文介绍Linux中的输入输出重定向、追加。
Linux是通过文件描述符来控制输入和输出的,如下:
字段 |
描述 |
文件描述符 |
默认设备 |
stdin |
标准输入流 |
0 |
终端(键盘) |
stdout |
标准输出流 |
1 |
终端(显示屏) |
stderr |
标准错误输出流 |
2 |
终端(显示屏) |
重定向符号
重定向符号
|
含义
|
使用方法
|
解释
|
<
|
输入重定向
|
command1 < file
|
command命令操作内容会从file文件中读取,替代了键盘输入
|
<<
|
输入重定向,多行录入
|
command1 << flag
|
将开始标记flag和结束标记flag之间的内容作为输入
|
>
|
输出重定向,覆盖式
|
command > file
|
将输出重定向到file
|
>>
|
输出重定向,追加式
|
command >> file
|
将输出以追加的方式重定向到file
|
2>
|
错误输出重定向,覆盖式
|
command 2> file
|
将错误输出重定向到file
|
2>
|
错误输出重定向,追加式
|
command 2> file
|
将错误输出以追加的方式重定向到file
|
&>
|
输出与错误输出重定向,覆盖式
|
command &> file
|
输出与错误输出重定向到file
|
&>>
|
输出与错误输出重定向,追加式
|
command &>> file
|
输出与错误输出以追加的方式重定向到file
|
& |
合并 |
command > file 2>&1 |
将标准输出写到file,标准错误也写到file。 |
输入重定向
<
目标
- 把test文件中的内容定向到tr程序中,将小写字母转换为大写字母。
命令
- 重定向符号将file1里的内容放到tr程序文件下的/fd/0里进行相应的处理。
- tr命令用于转换或删除文件中的字符。
执行结果
<<
例1:展示在屏幕上
目标
- 把多行录入内容定向到tr程序中,将小写字母转换为大写字母。
命令
执行结果
例2:转换后输出到文件
输出重定向
>
>会覆盖原文件内容。
示例
1.将正常输出写入文件
等价于
2. 将错误输出写入文件
3.将所有输出(正常和错误输出)都写入文件
>>
>>会追加到原文件的最后。
1.将正常输出写入文件
等价于
2. 将错误输出写入文件
3.将所有输出(正常和错误输出)都写入文件
cmd >/dev/null 2>&1
- >/dev/null 2>&1 的含义是:不输出任何信息。
- 其实也就等价于:&>/dev/null
详解
- >/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息。
- 2>&1:标准错误输出重定向和标准输出合并,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
cmd >> file 2>&1
- 把尼奥准输出和标准错误一起重定向到 file文件中(追加)。
- 其实也就等价于:&>>file
|