bash的的I/O重定向及管道

程序:指令+数据
读入数据:Input
输出数据:Output

打开的文件都有一个fd: file descriptor (文件描述符)

标准输入:keyborad, 0
标准输出:monitor, 1
标准错误输出:monitor, 2

I/O重定向:改变标准位置

输出重定向:COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆盖重定向,目标文件中的原有内容会被清除;
>>: 追加重定向,新内容会追加至目标文件尾部;

# set -C: 禁止将内容覆盖输出至已有文件中;
强制覆盖:>|
# set +C:

2>: 覆盖重定向错误输出数据流;
2>>: 追加重定向错误输出数据流;

标准输出和错误输出各自定向至不同位置:
COMMAND > /path/to/file.out 2> /path/to/error.out

合并标准输出和错误输出为同一个数据流进行重定向:
&>:覆盖重定向
&>>:追加重定向

COMMAND > /path/to/file.out 2> &1
COMMAND >> /path/to/file.out 2>> &1

输入重定向:<

tr命令:转换或删除字符
tr [OPTION]... SET1 [SET2]

HERE Documentation:<<
# cat << EOF
# cat > /path/to/somefile << EOF

管道:
COMMAND1 | COMMAND2 | COMMAND3 |...

Note:最后一个命令会在当前shell进程的子shell进程中执行;

tee命令:
tee [OPTION]... [FILE]...

猜你喜欢

转载自www.cnblogs.com/mengxi001/p/9544453.html