Linux中的重定向和管道

llinux中的三种IO设备:

  • 标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入
  • 标准输出(STDOUT),文件描述符号位:1,默认输出到显示终端
  • 标准错误(STDERR),文件描述符号为:2,默认输出到显示终端

IO重定向

IO重定向是为了改变默认输入、输出的位置:

1. 输出重定向(标准输出STDOUT和标准错误输出STDERR)
【>】标准输出覆盖重定向
【>>】标准输出追加重定向
【2>】标准错误输出重定向
【2>>】标准错误输出追加重定向
【&>】将标准输出和标准错误输出都同时重定向(相当于二次重定向【2>&1】)
【&>>】将标准输出和标准错误输出都同时追加重定向
【set -C】命令:启用系统禁止覆盖重定向(set -C执行后,再做重定向时,重定向文件如果存在则会报错 cannot overwrite existing file)如果在启用【set -C】命令后依然需要覆盖重定向文件,可以使用【>|】来强制覆盖
【set +C】命令:解除禁止覆盖重定向(set +C执行后,重定向文件如果存在则不会报错,直接覆盖)

2. 输入重定向(标准输入)
【<】输入重定向;
【<<END】多行输入;(END为多行输入的结束标志)通常用于脚本创建新文件时写入固定内容

3. 管道
【|】把前一个命令的执行结果当做后一个命令的输入