重定向:就是改变原操作方向,重新指向一个新的目标。
输入重定向:是将文件的内容输入到命令中
输出重定向:是将命令的结果输出到文件中
标准输入输出
Linux中存在三种默认重定向,对应的文件描述符0、1、2
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
例如
[root@linuxprobe ~]# touch linuxprobe [root@linuxprobe ~]# ls -l linuxprobe -rw-r--r--. 1 root root 0 Aug 5 05:35 linuxprobe [root@linuxprobe ~]# ls -l xxxxxx ls: cannot access xxxxxx: No such file or directory
因为存在linuxprobe 这个文件,执行 "ls -l linuxprobe" ,屏幕显示正常输出结果,这是标准输出
但是由于不存在xxxxxx文件,执行"ls -l xxxxxx",屏幕显示一个异常,这是错误输出
重定向
我们可以利用重定向符,来改变标准输入输出
格式:<命令> <重定向符> <文件>
<:标准输入 (覆盖) <:标准输入(追加)
>:标准输出(覆盖) >>:标准输出(追加)
2>:错误输出 (覆盖) 2>>:错误输出 (追加)
&>>:标准&错误输出(追加) &>>:标准&错误输出(追加)
输入重定向中用到的符号及其作用
符号 | 作用 |
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向中用到的符号及其作用
符号 | 作用 |
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) |