输入和输出的重定向 2>&1
1.常识
- 输入到字符串或者一定内容到另一个文件(会把目标的文件清空)
echo "hello world!" > a.txt cat a.txt > b.txt
- 输入到字符串或者一定内容到另一个文件(不会把目标文件清空,会继续追加,)
-
echo "hello world!" >> a.txt cat a.txt >> b.txt
- 注意点,记住,这个>和>>是可以在前面加1的,也就是1>和1>>,效果是一样的
2.上述的常识都是正常的内容输入,对于一些命令是会报错的,那么要把错误内容输出就要变成2
- 假如a.txt不存在,那么cat a.txt 2> b.txt 执行之后,b.txt的内容就是
cat: a.txt: No such file or director
如果执行没有报错,那b.txt就是空
-
2>> 和2>的区别就是追加报错内容
3.拓展 执行定时任务的时候
- crontab -l 显示有一行上午六点半执行的脚本
30 6 * * * /bin/bash -x /root/bin/task.sh >>/root/bin/task.log 2>&1 &
- 这里/bin/bash -x /root/bin/task.sh >>/root/bin/task.log 一看就明白,2>&1是什么意思呢? 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了task.log文件,即将标准出错也输出到task.log文件中。最后一个& , 是让该命令在后台执行。