shell中的2>/dev/null
1、文件描述符
Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
0——标准输入(stdin)
1——标准输出(stdout)
2——标准错误(stderr)
标准输出——stdout
假设:在当前目录下,有且只有一个文件名称为123.txt的文件,这时我们运行这个命令【ls 123.txt】,就会获得一个标准输出stdout的输出结果:123.txt
错误输出——stderr
按照上面的假设,我们运行另一条命令【ls abc.txt】,这样我们就会获得一个标准错误stderr的输出结果“ls:无法访问abc.txt:没有那个文件或目录”。
2、重定向
重定向的符号有两个:>或>>,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举个例子:
(a)重定向标准输出stdout
对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stdout.txt中。
(b)重定向标准错误stderr
对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stderr.txt中。
以上执行结果如下:
[root@node1 xiaoa]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 5 14:21 123.txt
[root@node1 xiaoa]# ls 123.txt
123.txt
[root@node1 xiaoa]# ls abd.txt
ls: cannot access abd.txt: No such file or directory
[root@node1 xiaoa]# ls 123.txt 1> stdout.txt
[root@node1 xiaoa]# vi stdout.txt
[root@node1 xiaoa]# ls abc.txt 2> stderr.txt
[root@node1 xiaoa]# vi stderr.txt
[root@node1 xiaoa]# ll
total 8
-rw-r--r--. 1 root root 0 Jun 5 14:21 123.txt
-rw-r--r--. 1 root root 53 Jun 5 14:40 stderr.txt
-rw-r--r--. 1 root root 8 Jun 5 14:39 stdout.txt
(c)也可以将stderr和stdout重定向到同一个文件
#ls 123.txt &> output.txt
3、Linux特殊文件
/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null这个设备通常也被称为位桶(bit bucket)或黑洞。
所以,2>/dev/null的意思就是将标准错误stderr删掉。
#ls abc.txt 2> /dev/null
最新文章
- Codeigniter基础
- 中国175个 AAAAA级风景区,去过20个 以上,你就是旅游达人
- praise包--R给你点赞!
- 1920.154s 0.309s 30817
- A trip through the Graphics Pipeline 2011_02
- pl/sql乱码
- 初探appium之appium的使用
- MyBatis(3.2.3) - hello world
- spring 的配置 bean>>property>>name属性
- object C—类中函数的调用
- 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)
- iOS 用GDataXMLNode创建和解析XML
- jQuery 效果 – 隐藏和显示
- Cookies 和session
- matlab : Nelder mead simplex 单纯形直接搜索算法;
- atomic 原子操作
- 33、iOS10 由于权限问题导致崩溃的大坑
- Bash重定向
- hdoj1050 Moving Tables(贪心)
- UI复习练习_优酷布局
热门文章
- shiro免认证的路径配置
- 【科研工具】流程图软件Visio Pro 2019 详细安装破解教程
- Unity——WegGL打包问题
- Redis cluster 集群部署和配置
- Declarative Pipeline 基础语法
- 3、回溯算法解题套路框架——Go语言版
- Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现
- 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron
- java 多线程 线程池:多核CPU利用ExecutorService newWorkStealingPool; ForkJoinPool线程池 执行可拆分的任务RecursiveAction;RecursiveTask
- libevent实现多线程