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         // 标准输出和标准错误重定向到文件(追加)
  1. 默认的重定向为标准输出重定向,即 > file 等价于 1> file
  2. &> file 等价于 1> file 2>&1 ,这里的 &1 指的是标准输出 1
  3. 当格式为 >> file 2>&1 不代表 标准输出追加而标准错误输出覆盖!

Linux :输入/输出重定向 >, 1>, 2>, &>, » , «

linux 中的输入输出重定向(b 站)