Shell: /dev/null 21详解
1,可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.
用处:
禁止标准输出. 1 cat $filename >/dev/null # 文件内容丢失,而不会输出到标准输出.
禁止标准错误. 2>/dev/null 这样错误信息[标准错误]就被丢到太平洋去了.
2, 1>/dev/null 2>&1的含义
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
3,/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。
下面使用dd命令将从zero设备中创建一个10K大小(bs决定每次读写1024字节,count定义读写次数为10次),但内容全为0的文件。
dd if=/dev/zero of=file count=10 bs=1024
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 这样的写法。
Shell: /dev/null 21详解相关推荐
- 【Linux】/dev/null 21 详解
今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...
- /dev/null 21 详解
原文出处:http://blog.csdn.net/kaiwii/article/details/7308729 把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所 ...
- linux更改文件属性宁静,shell /dev/null 21 ( linux空设备文件和重定向)
/dev/null代表 空文件设备 1表示系统标准输出,系统默认值是1, > /dev/null等同于1> /dev/null 对于 >dev/null 2>&11&g ...
- linux下详解shell中/dev/null 21
前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...
- nohup /dev/null 21 含义详解
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终端之后继续运行相应的进程.nohup就是不挂起的意思( n o ...
- Linux Shell 1/dev/null 21 含义
shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件 :代表重定向到哪 ...
- 关于/dev/null 和 /dev/zero文件详解以及误删/dev/null和/dev/zero的解决方法和利用/dev/zero进行磁盘IO测试方法
1.概论 -- 来自维基的解释 /dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一 ...
- shell之“/dev/null 21”
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:">/dev/null 2>& ...
- Linux Shell下”/dev/null 21“相关知识说明
0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 & = ...
最新文章
- 在linux中输入locate出现locate: can not stat ()的错误
- 并发编程-03线程安全性之原子性(Atomic包)及原理分析
- 【数据结构-图】2.多图详解最小生成树(多图详解+实现代码)
- Matlab emd工具箱、时频分析工具箱下载以及安装方法
- Yii 2.0: yii2-highcharts-widget创建饼状图
- stm32移植paho_如何在STM32上移植Linux?超详细的实操经验分享
- 切片与MapTask并行度决定机制
- 邱锡鹏DL经典教材-《神经网络与深度学习》
- happen-before原则解读
- 企业微信机器人脚本python_Python实现企业微信机器人每天定时发消息实例
- iOS 微信8.0.11更新,新功能,新变化
- 2020阿里云服务器免费领取与互联教程
- 2022年软考可以参加哪些科目考试?熟知
- 在火狐上安装chrome 的crx扩展
- SSL证书概述与配置
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170315
- 使用esp8266板子进行钓鱼攻击
- PS2手柄代码移植-合泰平台
- 2022-09-19
- [飞桨机器学习]决策树算法
热门文章
- 信息学奥赛一本通C++语言——1027:输出浮点数
- php 面向对象基础,PHP 面向对象基础
- 怎么安装mysql8.0.20_Mysql 8.0.20安装教程
- android 调出键盘表情_如何在Android的G板键盘中搜索表情符号和GIF | MOS86
- python多目标优化_多目标优化算法(四)NSGA3(NSGAIII)论文复现以及matlab和python的代码...
- 16进制 hbase phoenix_HBase 和 Phoenix 的使用
- python面向对象难学_python-面向对象进阶
- tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
- laravel $request 多维数组取值_3分钟短文:Laravel的“南天门”,过滤掉七七八八的数据...
- YOLOv1-YOLOv4