`
i_am_birdman
  • 浏览: 280638 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

/linux/null

 
阅读更多

 /dev/null 2>&1 详解

 

http://viplin.blog.51cto.com/241472/99568

 

 

 今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容:
30 19 * * * /usr/bin/**dcon.sh > /dev/null 2>&1
59 23 * * 1-7 /home/s**-log/squid-log.renew > /dev/null 2>&1
50 1 * * 1-7 /usr/local/src/**log.sh > /dev/null 2>&1
20 2 * * 1-7 /home/sq**-log/**log > /dev/null 2>&1
30 2 * * 1-7 /home/sq**-log/**log.01
30 22 * * * /bin/**sync > /dev/null 2>&1
00 8 * * 1-7 /home/**-log/rmcore > /dev/null 2>&1
00 16 * * 1-7 /home/**-log/rmcore > /dev/null 2>&1
他问我为什么要用 /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.下面我就为大家来说一下, command > file 2>file  与command > file 2>&1 有什么不同的地方.
      首先~command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command  > file 2>file 这样的写法,stdoutstderr都直接送到file中, file会被打开两次,这样stdoutstderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
      而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdoutstderr的内容.
      从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.

分享到:
评论

相关推荐

    /dev/null和/dev/zero文件使用详解和误删修复方法以及服务器磁盘IO测试详解

    关于linux系统文件/dev/null和/dev/zero文件的详解和/dev/null、/dev/zero文件误删后的修复方法以及服务器磁盘IO测速详解,和一些常见/dev/null /dev/zero文件的用途用法示例说明

    解决git报错问题Null系统资源文件

    `/dev/null`在Unix/Linux系统中是一个特殊的文件,通常被称为“黑洞”,它会丢弃所有写入它的数据,并且读取它时返回空字符流。在Git中,`/dev/null`常用于重定向输出或者设置为某些命令的输入源。 当出现上述错误...

    OS + linux command / Linux Command / Linux command / linux Command

    描述中提到的“NULL”可能表示没有具体的细节或描述,所以我们需要通过其他途径获取信息。博文链接提供了一个可能的学习资源,即ITEYE博客上的“lindows”作者分享的一篇关于Linux命令的文章,编号为223297。遗憾的...

    fatal: open /dev/null or dup failed: No such file or directory 修复

    使用git Bash here闪退并生成mintty.exe.stackdump文件 cmd使用git 报错 fatal:open /dev/null or dup failed: No such file or directory 并弹出mitty.dump文件 使用方法见我的CSDN

    Null系统资源文件

    在Linux和Unix系统中,/dev/null是一个特殊的设备文件,通常被称为“空设备”或“黑洞”,它会丢弃所有写入的数据,并且对读取操作返回一个空的结束标志。在Git中,/dev/null通常用于标准错误输出重定向。 该错误...

    my soft_linuxsoft / linux soft / Linux soft

    NULL 博文链接:https://lindows.iteye.com/blog/249765

    如何清除linux日志

    清除linux方法把下面的文件根据需要做一下修改,然后保存为clear_logs.sh,然后执行即可。  #!/bin/sh  cat /dev/null > /var/log/syslog  cat /dev/null > /var/adm/sylog  cat /dev/null > /var/log/wtmp  ...

    git报错需要的null.sys

    `/dev/null`在Unix-like操作系统(包括Linux和macOS)中是一个特殊的文件,它被称为“黑洞”,用于丢弃写入它的所有数据,并且从它读取时总是返回空字符。在Git中,`/dev/null`可能被用作某些内部操作的输出重定向。...

    lichee_20170502_1607_全志R16的linux系统编译需要改动的文件_使用parrotv1.1的内核_没有外层目录.7z

    rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar zxvf lichee_parrotv1.1_20161202.tar.gz rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ rootroot@cm-System-Product-Name:/home/wwt/linux_...

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar...

    如何在Unix/Linux系统下调试脚本程序

    grep 'something' $i > /dev/null [ $? -eq 0 ] && echo "Found in $i file" || : done DEBUG set -x a=2 b=3 c=$(( $a + $b )) DEBUG set +x echo "$a + $b = $c" ``` 运行此脚本,你可以看到详细的执行过程,...

    Unix_Linux_bcsjjc.zip

    设备在Unix/Linux中被视为特殊文件,如/dev/null、/dev/random等。学会与设备交互,如字符设备和块设备的区别,是理解I/O操作的重要部分。 10. **编译与链接** GCC(GNU Compiler Collection)是常用的Unix/Linux...

    c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务完整示例代码

    你可以编写一个C++程序,通过`fork()`和`setsid()`来脱离终端,再使用`chdir("/")`防止占用工作目录,最后通过`dup2()`重定向标准输入、输出和错误流到 `/dev/null`。服务的启动、停止可以通过`system()`调用`...

    win10专业版 null.sys

    在Windows 10专业版操作系统中,安装Git时遇到找不到`/dev/null`的问题,这通常是由于Windows与Unix/Linux系统之间文件系统结构的差异引起的。`/dev/null`在Linux和Unix-like系统中是一个特殊设备文件,它用于丢弃...

    Linux操作系统的试题

    例如,/dev/sda表示硬盘,/dev/null用于丢弃数据等。 2. **/etc/fstab文件**:这是Linux启动时读取的配置文件,它定义了文件系统如何挂载,包括文件系统类型、挂载点、挂载选项等。 3. **链接**:在Linux中,链接...

    Linux下设备内存地址SuperIO直接操作工具devmem2

    Linux下设备内存地址SuperIO直接操作工具devmem2 enableIT8786 superIO GPIO Watchdog # enter MB Pnp Mode devmem2 0x2000004E b 0x87 > /dev/null 2>&1 sleep 0.01 devmem2 0x2000004E b 0x01 > /dev/null 2>&1 ...

    util-linux-ng-2.17源码(含fdisk)

    util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...

    docker-20.10.6.tgz 安装包及安装命令、jdk8-Linux版本

    - Ubuntu/Debian: `echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null` - CentOS/RHEL: `echo -e "...

    详解nohup /dev/null 2>&1 含义的使用

    总结来说,`nohup` 命令与重定向操作符的组合,如 `nohup command > /dev/null 2>&1 &`,是 Linux 系统中常用的技术,用于在后台运行进程并丢弃所有输出,以确保进程的持续运行不受用户交互的影响。理解这些基本概念...

    详解shell中>/dev/null 2>&1到底是什么

    在Linux或Unix系统中,Shell脚本是一种强大的自动化工具,它允许用户编写一系列命令来执行任务。在Shell脚本中,我们经常会遇到`>/dev/null 2>&1`这样的重定向操作,它是用来处理命令的输出和错误的。接下来,我们将...

Global site tag (gtag.js) - Google Analytics