zoukankan      html  css  js  c++  java
  • [Linux]浅析"command > /dev/null 2>&1 &" 与 "command 1>/dev/null 2>&1 &"

    1 问题描述

    1.1 问题描述

    在一项目中查看CENTOS 服务器的定时任务crontab时查看到如下这段命令:

    命令clearLog.sh > /dev/null 2>&1 & 等效于 clearLog.sh 1 > /dev/null 2>&1 &

    1.2 命令解释

    在后台执行这个command程序,
    将错误输出2 重定向到 标准输出1,
    然后,将标准输出1全部放到 /dev/null文件(即 清空,不做任何信息存储)

    【 command 】 表示shell命令或者为一个可执行程序
    【 > 】 表示重定向到哪里
    【 /dev/null 】表示Linux的空设备文件,通常用于丢弃不需要的数据时使用此shell命令
        /dev/null 表示空设备,这里就是把日志记录到空设备里,就是不记录日志,Null 是一特殊指标值(或是一种物件参照 reference)表示这个指标并不指向任何的物件。
        /dev/null 是一个特殊的文件,写入到它的内容都会被丢弃,如果尝试从该文件读取内容,那么什么也读不到,但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到”禁止输出“的效果。
        Eg: cat /dev/null > /home/sdc/fileName.txt (清空fileName.txt文件)
        Eg: cat $filename >/dev/null   (文件内容丢失,而不会输出到标准输出,禁止标准错误)
    【 2 】 表示标准错误输出
      0:表示键盘输入(stdin)
      1:表示标准输出(stdout),系统默认是1
      2:表示错误输出(stderr)
    【 &1 】 &表示 等同于。故 2>&1 表示2的输出重定向等于于1
    【 & 】 表示后台执行,即这条指令执行在后台运行
    

    由此可见: command > /dev/null 2>&1 常用来避免shell命令或者程序等运行中有内容输出

    延申

    1>/dev/null
        表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
    2>&1
        表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
    

    X 参考文献

    赞赏-支付宝二维码
    本文作者千千寰宇
    本文链接 https://www.cnblogs.com/johnnyzen
    关于博文:评论和私信会在第一时间回复,或直接私信我。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:若本文对您有帮助,可点击右下角推荐一下。您的鼓励、【赞赏】(左侧赞赏支付码)是博主技术写作的重要动力!
  • 相关阅读:
    组合模式
    MySQL8.0 下载安装启动(Windows10)
    OI如逆旅,我亦是行人——省选
    闲话—江湖痴情浅,信步余生。平剑红烛,青丝微绾,却话奁中。
    此时彼方
    CSP 2019游记 & 退役记
    西狂 杨过
    SDOI 2019 Round1 游记
    NOIP2018游记
    未来可期,不知所终
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/14787155.html
Copyright © 2011-2022 走看看