输入输出重定向

常用的输入输出重定向操作符如下: 基本重定向操作符

  1. >:重定向输出

  • 用于将标准输出重定向到一个文件。如果文件已经存在,它会覆盖文件的内容。

  • 示例:echo "Hello, World!" > output.txt

    • 这会将字符串 "Hello, World!" 写入到 output.txt 文件中,如果文件存在,会覆盖其内容。

  1. >>:追加输出

  • 用于将标准输出追加到一个文件。如果文件不存在,它会创建该文件。

  • 示例:echo "Hello, World!" >> output.txt

    • 这会将字符串 "Hello, World!" 追加到 output.txt 文件的末尾。

  1. <:重定向输入

  • 用于将文件内容作为命令的输入。

  • 示例:sort < input.txt

    • 这会将 input.txt 文件的内容作为 sort 命令的输入。

错误重定向操作符

  1. 2>:重定向错误输出

  • 用于将标准错误输出重定向到一个文件。如果文件已经存在,它会覆盖文件的内容。

  • 示例:command 2> error.log

    • 这会将 command 的错误输出写入到 error.log 文件中。

  1. 2>>:追加错误输出

  • 用于将标准错误输出追加到一个文件。如果文件不存在,它会创建该文件。

  • 示例:command 2>> error.log

    • 这会将 command 的错误输出追加到 error.log 文件的末尾。

合并输出

  1. &>:重定向标准输出和标准错误输出

  • 用于将标准输出和标准错误输出都重定向到同一个文件。

  • 示例:command &> output.log

    • 这会将 command 的标准输出和错误输出都写入到 output.log 文件中。

  1. >&:重定向标准输出和标准错误输出(语法不同)

  • 这是另一种将标准输出和标准错误输出重定向到同一个文件的方式。

  • 示例:command > output.log 2>&1

    • 这会将 command 的标准输出重定向到 output.log,然后将标准错误输出重定向到标准输出。

其他有用的操作符

  1. |:管道

  • 用于将一个命令的输出作为另一个命令的输入。

  • 示例:ls -l | grep "txt"

    • 这会将 ls -l 的输出通过管道传递给 grep 命令,筛选出包含 "txt" 的行。

  1. &:后台运行

  • 用于将命令放到后台运行。

  • 示例:command &

    • 这会将 command 放到后台运行,使终端可以继续执行其他命令。

  1. ;:顺序执行

  • 用于顺序执行多个命令。

  • 示例:command1; command2

    • 这会先执行 command1,然后执行 command2。

简单的总结如下:

命令
说明

command > file

将输出重定向到 file。

command < file

将输入重定向到 file。

command >> file

将输出以追加的方式重定向到 file。

n > file

将文件描述符为 n 的文件重定向到 file。

n >> file

将文件描述符为 n 的文件以追加的方式重定向到 file。

n >& m

将输出文件 m 和 n 合并。

n <& m

将输入文件 m 和 n 合并。

<< tag

将开始标记 tag 和结束标记 tag 之间的内容作为输入。

Last updated

Was this helpful?