数据流重定向
2016-04-04 15:06
176 查看
1. 数据流重定向(redirect) : 将某个命令执行后应该出现在屏幕上的信息保存到指定的地方.
2. 数据流类别
标准输入(standard input ) stdin : 代码为0, 使用<或<<
标准输出(standard output) stout : 代码为1, 使用>或>> 指的是命令执行所回传的正确的信息.
标准错误输出(standard error output) stderr : 代码为2, 使用2>或2>> 指的是命令执行失败后, 所回传的错误信息.
一般,标准输出和标准错误输出都是默认输出到屏幕上.
3. 实例讲解:
命令: ls > 1.txt
若没有1.txt这个文件,系统将会自动创建;
若存在1.txt,系统将会先将文件内容清空,然后再将数据写入.
命令: ls >> 1.txt
与上面的区别是不会覆盖1.txt原本存储的内容,会将新信息写入到文件原有信息的后面.
命令: ls 1> out.txt 2> error.txt
将ls的输出正确信息写入到out.txt , 错误信息写入到error.txt .注意2>中间没有空格.
命令: cat > catfile 产生名叫catfile的文件,并紧接着在屏幕上输入文件存储内容;
命令: cat > catfile < 1.txt
"<"将原本由键盘输入的数据改由文件内容来替代.
命令: ls -al catfile 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:13 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:33 catfile
查看catfile和1.txt的文件信息, 发现这2个文件大小一模一样,和cp复制效果一样.
注意: "<<" 代表的是结束的意思;
命令: cat > catfile << "eof"
> djh
> kdf
> eof
当键盘输入eof时,系统自动终止文件内容的写入, "eof"并不会写入文件中.而不需要使用ctrl+d来强制退出.
4. 特殊用法
(1)/dev/null 垃圾桶黑洞设备
已经知道错误信息会产生,想要将此错误信息忽略掉而不显示或存储, 可以使用以下用法:
ls 1> out.txt 2> /dev/null . 这个/dev/null将会吃掉所有导向这个设备的信息;
(2) 将正确的输出信息和错误的输出信息输入到一个文件中
命令1:
ls 1> out.txt 2>&1 (常用)
命令2:
ls &> output.txt
错误:
ls 1> out.txt 2> out.txt 两条数据同时写入一个文件,此时两条数据会交叉写入文件中,造成次序的错乱.
2. 数据流类别
标准输入(standard input ) stdin : 代码为0, 使用<或<<
标准输出(standard output) stout : 代码为1, 使用>或>> 指的是命令执行所回传的正确的信息.
标准错误输出(standard error output) stderr : 代码为2, 使用2>或2>> 指的是命令执行失败后, 所回传的错误信息.
一般,标准输出和标准错误输出都是默认输出到屏幕上.
3. 实例讲解:
命令: ls > 1.txt
若没有1.txt这个文件,系统将会自动创建;
若存在1.txt,系统将会先将文件内容清空,然后再将数据写入.
命令: ls >> 1.txt
与上面的区别是不会覆盖1.txt原本存储的内容,会将新信息写入到文件原有信息的后面.
命令: ls 1> out.txt 2> error.txt
将ls的输出正确信息写入到out.txt , 错误信息写入到error.txt .注意2>中间没有空格.
命令: cat > catfile 产生名叫catfile的文件,并紧接着在屏幕上输入文件存储内容;
命令: cat > catfile < 1.txt
"<"将原本由键盘输入的数据改由文件内容来替代.
命令: ls -al catfile 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:13 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:33 catfile
查看catfile和1.txt的文件信息, 发现这2个文件大小一模一样,和cp复制效果一样.
注意: "<<" 代表的是结束的意思;
命令: cat > catfile << "eof"
> djh
> kdf
> eof
当键盘输入eof时,系统自动终止文件内容的写入, "eof"并不会写入文件中.而不需要使用ctrl+d来强制退出.
4. 特殊用法
(1)/dev/null 垃圾桶黑洞设备
已经知道错误信息会产生,想要将此错误信息忽略掉而不显示或存储, 可以使用以下用法:
ls 1> out.txt 2> /dev/null . 这个/dev/null将会吃掉所有导向这个设备的信息;
(2) 将正确的输出信息和错误的输出信息输入到一个文件中
命令1:
ls 1> out.txt 2>&1 (常用)
命令2:
ls &> output.txt
错误:
ls 1> out.txt 2> out.txt 两条数据同时写入一个文件,此时两条数据会交叉写入文件中,造成次序的错乱.
相关文章推荐
- Tiny4412 烧写uboot到emmc步骤
- 链表1
- 链表
- 89. Gray Code
- 自己设计并制作了一个自动温度控制系统
- puppet笔记
- iOS高仿城觅-感谢大神分享
- SpringMVC学习记录(一)--环境配置
- java struts2学习笔记之线程安全
- WebServices介绍
- 关于HTML知识的一些总结
- 装饰模式
- android开发--HttpUrlConnection
- 开源弹幕引擎·烈焰弹幕使(DanmakuFlameMaster)使用解析
- 排序算法
- poj之旅——3045
- Android Studio 生成jks密钥 和 Gradle 多渠道打包
- “代理服务器拒绝连接“问题
- [BZOJ3631][JLOI2014]松鼠的新家(链剖)
- VR游戏开发干货教程:如何创建一个VR项目