重定向,/dev/null, 1>, 2>什么意思?
2024-08-26 20:55:10
文件描述符我们常见的就是系统预留的0,1和2这三个,他们的意义分别有如下对应关系:
- 0 —— stdin(标准输入)
- 1 —— stdout (标准输出)
- 2 —— stderr (标准错误)
其中,shell编程里经常用到的就是描述符1,和描述符2。
如:ls命令执行的时候,在标准输出 输出了结果,我们可以通过重定向符号,把标准输出的结果重定向到文件。
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu@dev:~/linux/std_err_out$ touch ghostwu.txt
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu.txt
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu.txt
ghostwu@dev:~/linux/std_err_out$ ls > std_out.txt
ghostwu@dev:~/linux/std_err_out$ cat std_out.txt
ghostwu.txt
std_out.txt
ghostwu@dev:~/linux/std_err_out$ ls > std_out1.txt
ghostwu@dev:~/linux/std_err_out$ cat std_out1.txt
ghostwu.txt
std_out1.txt
std_out.txt
> 和 1>是等价的,都表示标准输出重定向。
错误重定向:
什么时候会产生错误重定向?比如,最简单,不存在某文件
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu.txt std_out1.txt std_out.txt
ghostwu@dev:~/linux/std_err_out$ ls std_err.txt
ls: cannot access 'std_err.txt': No such file or directory
我们可以把错误信息,通过错误重定向写入文件。
ghostwu@dev:~/linux/std_err_out$ ls std_error.txt
ls: cannot access 'std_error.txt': No such file or directory
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu.txt std_out1.txt std_out.txt
ghostwu@dev:~/linux/std_err_out$ ls std_error.txt > output_error.txt
ghostwu@dev:~/linux/std_err_out$ cat output_error.txt
ls: cannot access 'std_error.txt': No such file or directory
ghostwu@dev:~/linux/std_err_out$
2>&1,
&1
的含义就可以理解为用标准输出的引用
2>表示错误输出,&等价于标准输出
ghostwu@dev:~/linux/std_err_out$ ls a.txt >&
ls: cannot access 'a.txt': No such file or directory
ghostwu@dev:~/linux/std_err_out$ ls
ghostwu.txt output_error.txt std_out1.txt std_out.txt
2>/dev/null意思就是把错误输出到“黑洞”
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt
ls: cannot access 'ghostwu.txt': No such file or directory
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt >/dev/null
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt >/dev/null
ghostwu@dev:~/linux/shell/pipe$
>/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt
ghostwu.txt
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt >/dev/null
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu2.txt >/dev/null
ls: cannot access 'ghostwu2.txt': No such file or directory
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu2.txt >/dev/null >&
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt >/dev/null >&
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu2.txt >/dev/null >&
2>&1 >/dev/null意思就是把错误输出2重定向到标准输出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu.txt >&>/dev/null
ghostwu@dev:~/linux/shell/pipe$ ls ghostwu2.txt >&>/dev/null
ls: cannot access 'ghostwu2.txt': No such file or directory
ghostwu@dev:~/linux/shell/pipe$
最新文章
- Git分布式版本控制系统学习笔记
- Eclipse块选取的情况 shift+tab 是块向前缩进
- Java 读取xlsx
- Linux查看系统配置常用命令
- Partitioning
- jquery遍历对象,数组,集合
- 记录一下ORACLE 10gR2的软件下载地址,备用。
- 精益求精, ePub 电子书制作手记
- oracle连接和执行流程总结
- 手工走一次OPENSTACK安装,掉一层皮啊
- bin文件格式分析
- hibernate几个纯sql查询
- [asp.net] 利用WebClient上传图片到远程服务
- python中的subprocess.Popen()使用
- MysqL错误之_ERROR! MySQL server PID file could not be found!
- 【Python系列】HDF5文件介绍
- ABP文档笔记 - 数据过滤
- yarn 常用命令
- 关于php开发中的字符编码问题总结的几个要点
- Uploadify导致Chrome频繁崩溃Crash
热门文章
- Pycharm 开发 Django 项目
- three.js 微信小游戏
- 用document.readyState实现网页加载进度条
- 在notepad++中使用正则匹配功能(一-龥!-~) 中文[利刃篇]
- tk.mybatis通用工具采坑记
- 往github提交代码流程
- (转)Linux内核参数之arp_ignore和arp_announce
- js 获取浏览器大小,屏幕大小等。
- Tsql2008查询性能优化第一章---APPLY
- 可重入锁 &; 不可重入锁