[转帖]/dev/null 2>&1详解
https://www.diewufeiyang.com/post/1045.html
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
分解这个组合:">/dev/null 2>&1" 为五部分。
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
2:/dev/null 代表空设备文件
3:2> 表示stderr标准错误
4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"
因此,>/dev/null 2>&1也可以写成"1> /dev/null 2> &1"
那么本文标题的语句执行过程为:
1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 :接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
说清楚了吗,大家理解下吧!
顺便对比述说下这么用的好处!
最常用的方式有:
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 这样的写法。
[转帖]/dev/null 2>&1详解的更多相关文章
- Shell脚本 /dev/null 2>&1详解
Shell脚本---- /dev/null 2>&1详解 1.可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. ...
- 【Linux】/dev/null 2>&1 详解
今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...
- Shell脚本———— /dev/null 2>&1详解
1.可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和 ...
- shell之“>/dev/null 2>&1” 详解(转)
今天在自己的一个技术群中又被问道了这么一个问题,于是又通俗的解释了一下,做个记录,大家看看解释是否清楚! shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以 ...
- /dev/null 2>&1 详解
今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...
- shell里的/dev/null 2>&1详解
shell中可能经常能看到: >/dev/null 2>&1 命令意思是:标准输出stdout 和标准错误输出stderr 也重定向到空设备文件,即不显示输出信息 分解这个组合:“ ...
- shell之“>/dev/null 2>&1” 详解
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过 %> 的形式来定义输出,其中 %> 代表文件描述符 我们将这个命令组合:"& ...
- Shell学习笔记之关于 >/dev/null 2>&1 详解
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:“>/dev/null 2>&1” 为五 ...
- crontab 常见 /dev/null 2>&1 详解
大部分在 crontab 计划任务中都会年到未尾带 >/dev/null 2>&1,是什么意思呢? > 是重定向 /dev/null 代表空设备文件 1 表示stdout标准 ...
- Linux下" >/dev/null 2>&1 "详解
在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者g ...
随机推荐
- GitHub OAuth2的授权指南
一.OAuth2简介 OAuth 2.0(开放授权 2.0)是一种用于授权的开放标准,旨在允许用户在不提供他们的用户名和密码的情况下,授权第三方应用访问其在另一网站上的信息.它是在网络服务之间安全地共 ...
- LFS - Linux From Scratch 从零开始全记录 - 1 准备篇
上次折腾 LFS 已经是好几年前了,只记得最后用 VMware 引导成功了,好多技术细节已经不记得了.趁着最近有空,再来折腾一次.这一次用的一台新的 Win10 PC,目标是在一个 U 盘上构建 LF ...
- 数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器
摘要:随着数据仓库业务的发展,GDS使用场景日益增多,这就要求GDS仍要不断迭代,充分深入挖掘用户需求,提高产品化程度. 1. GDS定位 GDS是GaussDB(DWS)提供的一个数据导入导出工具, ...
- Vuex在TSX中的改造方案:TS改造Vue2项目Vuex如何处置?
vuex目前比较流行的有:vuex-aggregate . vuex-class.vuex-module-decorators npm搜到相关的,看下趋势图:https://www.npmtrends ...
- 火山引擎ByteHouse:一套方案,让OLAP引擎在精准投放场景更高效
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 由于流量红利逐渐消退,越来越多的广告企业和从业者开始探索精细化营销的新路径,取代以往的全流量.粗放式的广告轰炸 ...
- C# async await 异步执行方法
WPF 异步执行 Action<> Func<> https://www.cnblogs.com/vipsoft/p/4535037.html 代码如下 using Syste ...
- Java 获取当前天是一年中的第几天
Java 获取当前天是一年中的第几天 @Test void dayofweed() throws Exception { System.out.println("2023-01-01 第 & ...
- PPT 版面的规则和精髓
排版四原则 对齐 对比 亲密 重复 背景图 案例
- 【短道速滑二】古老的基于亮度平均值的自动Gamma校正算法。
在github上搜索代码Auto Gamma Correction,找到一个比较古老的代码,详见:https://github.com/PedramBabakhani/Automatic-Gamma- ...
- 创建DOM节点时出现错误信息:box.appendChild is not a function
1.代码正常书写如下 <div class="box"></div> <!-- JavaScript代码 --> <script> ...