Linux中的重定向和管道
llinux中的三种IO设备:
- 标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入
- 标准输出(STDOUT),文件描述符号位:1,默认输出到显示终端
- 标准错误(STDERR),文件描述符号为:2,默认输出到显示终端
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. 管道
- 【|】把前一个命令的执行结果当做后一个命令的输入
4. 输出重定向例子
4.1 把/etc/fstab文件内容重定向到/tmp目录下的gdy.out文件中
【cat /etc/fstab >/tmp/gdy.out】
[root@xdd ~]# cat /etc/fstab >/tmp/gdy.out
[root@xdd ~]# cat /tmp/gdy.out
#
# /etc/fstab
# Created by anaconda on Tue Mar 19 10:24:36 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8),