Linux 重定向
linux重定向可以将命令的输出或输入重新定向到其他位置或文件,以实现对输出输入的控制。默认情况下命令的输出通常为终端,如果想将输出转移到文件或其他位置,这时候就需要重定向。
文件描述符:一个命令通常都会打开三个文件,默认使用文件描述符0,1,2来指代这个三个文件
stdin 0 标准输入流 (键盘)
stdout 1 标准输出流 (终端)
stderr 2 标准错误输出流 (终端)
以上标准输出和输入均在终端中进行,而重定向符 >
、>>
就是将其输出对象进行改变
shell 中常见重定向形式如下:
> file // 标准输出重定向到文件(覆盖)
>> file // 标准输出重定向到文件(追加)
2> file // 标准错误重定向到文件(覆盖)
2>> file // 标准错误重定向到文件(追加)
2> /dev/null // 标准错误重定向到回收站
&> file // 标准输出和标准错误重定向到文件(覆盖)
>> file 2>&1 // 标准输出和标准错误重定向到文件(追加)
- 默认的重定向为标准输出重定向,即
> file
等价于1> file
&> file
等价于1> file 2>&1
,这里的&1
指的是标准输出 1- 当格式为
>> file 2>&1
不代表 标准输出追加而标准错误输出覆盖!