/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 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.
分享到:
相关推荐
关于linux系统文件/dev/null和/dev/zero文件的详解和/dev/null、/dev/zero文件误删后的修复方法以及服务器磁盘IO测速详解,和一些常见/dev/null /dev/zero文件的用途用法示例说明
`/dev/null`在Unix/Linux系统中是一个特殊的文件,通常被称为“黑洞”,它会丢弃所有写入它的数据,并且读取它时返回空字符流。在Git中,`/dev/null`常用于重定向输出或者设置为某些命令的输入源。 当出现上述错误...
描述中提到的“NULL”可能表示没有具体的细节或描述,所以我们需要通过其他途径获取信息。博文链接提供了一个可能的学习资源,即ITEYE博客上的“lindows”作者分享的一篇关于Linux命令的文章,编号为223297。遗憾的...
使用git Bash here闪退并生成mintty.exe.stackdump文件 cmd使用git 报错 fatal:open /dev/null or dup failed: No such file or directory 并弹出mitty.dump文件 使用方法见我的CSDN
在Linux和Unix系统中,/dev/null是一个特殊的设备文件,通常被称为“空设备”或“黑洞”,它会丢弃所有写入的数据,并且对读取操作返回一个空的结束标志。在Git中,/dev/null通常用于标准错误输出重定向。 该错误...
NULL 博文链接:https://lindows.iteye.com/blog/249765
清除linux方法把下面的文件根据需要做一下修改,然后保存为clear_logs.sh,然后执行即可。 #!/bin/sh cat /dev/null > /var/log/syslog cat /dev/null > /var/adm/sylog cat /dev/null > /var/log/wtmp ...
`/dev/null`在Unix-like操作系统(包括Linux和macOS)中是一个特殊的文件,它被称为“黑洞”,用于丢弃写入它的所有数据,并且从它读取时总是返回空字符。在Git中,`/dev/null`可能被用作某些内部操作的输出重定向。...
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_...
全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar...
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中被视为特殊文件,如/dev/null、/dev/random等。学会与设备交互,如字符设备和块设备的区别,是理解I/O操作的重要部分。 10. **编译与链接** GCC(GNU Compiler Collection)是常用的Unix/Linux...
你可以编写一个C++程序,通过`fork()`和`setsid()`来脱离终端,再使用`chdir("/")`防止占用工作目录,最后通过`dup2()`重定向标准输入、输出和错误流到 `/dev/null`。服务的启动、停止可以通过`system()`调用`...
在Windows 10专业版操作系统中,安装Git时遇到找不到`/dev/null`的问题,这通常是由于Windows与Unix/Linux系统之间文件系统结构的差异引起的。`/dev/null`在Linux和Unix-like系统中是一个特殊设备文件,它用于丢弃...
例如,/dev/sda表示硬盘,/dev/null用于丢弃数据等。 2. **/etc/fstab文件**:这是Linux启动时读取的配置文件,它定义了文件系统如何挂载,包括文件系统类型、挂载点、挂载选项等。 3. **链接**:在Linux中,链接...
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) 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] ...
- 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` 命令与重定向操作符的组合,如 `nohup command > /dev/null 2>&1 &`,是 Linux 系统中常用的技术,用于在后台运行进程并丢弃所有输出,以确保进程的持续运行不受用户交互的影响。理解这些基本概念...
在Linux或Unix系统中,Shell脚本是一种强大的自动化工具,它允许用户编写一系列命令来执行任务。在Shell脚本中,我们经常会遇到`>/dev/null 2>&1`这样的重定向操作,它是用来处理命令的输出和错误的。接下来,我们将...