常用

下面是一些常见的重定向操作:

  1. 输出重定向

    • 使用 > 将命令的输出重定向到文件中。例如,将 ls 命令的输出保存到 list.txt 文件中:$ ls > list.txt 这会将 ls 命令的输出写入到 list.txt 文件中,屏幕上不会显示输出信息。
    • 如果要将新内容添加到文件末尾,可以使用 >> 操作符:$ cat image.png >> picture.png
  2. 输入重定向

    • 使用 < 将文件中的内容作为命令的输入。例如,将文件 a.txt 的内容传递给命令:$ cat a.txt < b.txt
  • <<< 可以把 字符串 输入导向命令中

深入讲解

  • 默认情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
    • 标准输入文件 (stdin):stdin 的文件描述符为 0,Unix 程序默认从 stdin 读取数据。
    • 标准输出文件 (stdout):stdout 的文件描述符为 1,Unix 程序默认向 stdout 输出数据。
    • 标准错误文件 (stderr):stderr 的文件描述符为 2,Unix 程序会向 stderr 流中写入错误信息。
  • 可以通过以下方式改变这些通道的方向:
    • 将 stdout 重定向到文件:command > file
    • 将 stderr 重定向到文件:command 2> file
    • 合并 stdout 和 stderr 并重定向到文件:command > file 2>&1
    • 同时替换输入和输出:command < file1 > file2