bash 重定向

>

重定向输出,若无该文件则新建,若有则覆盖
ls -al > log

 

: > filename
清空文件
:为虚拟占位符

 

>>
重定向输出,若无该文件则新建,若有则添加进去

 

默认数字中,0表示标准输入(键盘),1表示标准输出(屏幕),2表示标准错误输出(屏幕)

 

& > filename 
重定向标准输出和标准错误输出到filename

 

2>&1

重定向标准错误输出到标准输出

 

0<filename

从文件输入

 

n<&-
关闭输入fd n

 

echo "a" 1>&2 2>log
echo "a"
默认会在标准输出中输出 a

1>&2

将标准输出结果作为标准错误输出,此时的 1 相当于 1 和 2,而 2 不再是 2(标准错误输出)
此时的**标准错误输出由文件描述符 3 保存**。

2>log

将文件描述符的 2 重定向到文件 log 中,非标准错误输出

所以,使用以上的命令无法将 1 和 2 中的流导出到 log 文件中
echo "a" 2> log 1>&2
echo "a" 1>&2 > log
以上两种方法都可以将 标准输出和标准错误输出 都放到 log 里面

posted @ 2018-09-18 18:05  postw  阅读(127)  评论(0)    收藏  举报