输入和输出的重定向 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文件中。最后一个& , 是让该命令在后台执行。
posted @ 2020-04-08 09:51  马小纪  阅读(276)  评论(0编辑  收藏  举报