0%

重定向

重定向

文件的标准操作分为 标准输入(stdin)、标准输出(stdout)、标准报错输出(stderr)

输入重定向

输入重定向符是<

  • 标准输入STDIN 文件描述符是0
1
2
# 命令的输入来自于文件而不是键盘
command < input-file

输出重定向

输出重定向符是>

bash的输出分为标准输出和错误输出

  • 标准输出STDOUT 文件描述符是1
  • 错误输出STDERR 文件描述符是2

而输出重定向可以将本应该输出到控制台的内容输出到文件

  • 标准输出重定向 命令 > 文件 覆盖原文件内容 命令 >> 文件 追加
  • 错误输出重定向 错误命令 2>文件 覆盖原文件内容 错误命令 2>>文件 追加

使用

1
2
3
4
5
6
7
8
9
# 将错误输出和正常输出分别写到不同的文件
命令 2> err.log 1> stdout.log

# 把命令的标准输出保存到文件中 再将错误输出保存到参数1中,即文件中
命令 >> 文件 2>&1

# 可以使用&>特殊重定向,将所有输出都写到一个文件(不管是错误信息还是正确信息)
命令 &> std.log

可以将命令输出内容追加到文件中(不管是错误信息还是正确信息)

tee命令

如果想将输出同时发送到控制台和日志,可以使用tee命令。

1
2
3
4
5
# 此时控制台和文件中都会有时间内容
date | tee out.log

# 如果想要追加,则使用-a
date | tee -a out.log

欢迎关注我的其它发布渠道