浅析Linux中重定向问题
简介
在计算领域,重定向是大多数命令行解释器所具有的功能,包括各种可以将标准流重定向用户规定地点的Unixshells。类Unix操作系统的程序可以通过dup2系统调用完成重定向,或者通过缺少一些灵活性但是更高一级层次的freopen(3)和popen来完成。
1重定向
1.1 重定向符号
> 输出重定向到一个文件或设备覆盖原来的文件
>! 输出重定向到一个文件或设备强制覆盖原来的文件
>> 输出重定向到一个文件或设备追加原来的文件
< 输入重定向到一个程序
1.2标准错误重定向符号
2> 将一个标准错误输出重定向到一个文件或设备覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出注释:1可能就是代表标准输出
>& 将一个标准错误输出重定向到一个文件或设备覆盖原来的文件 c-shell
|& 将一个标准错误管道输送到另一个命令作为输入
1.3命令重导向示例
在bash命令执行的过程中,主要有三种输出入的状况,分别是:
1.标准输入;代码为0;或称为stdin;使用的方式为<
2.标准输出:代码为1;或称为stdout;使用的方式为1>
3.错误输出:代码为2;或称为stderr;使用的方式为2>
[test@testtest]#ls-al>list.txt
将显示的结果输出到list.txt文件中,若该文件以存在则予以取代!
[test@testtest]#ls-al>>list.txt
将显示的结果累加到list.txt文件中,该文件为累加的,旧数据保留!
[test@testtest]#ls-al1>list.txt2>list.err
将显示的数据,正确的输出到list.txt错误的数据输出到list.err
[test@testtest]#ls-al1>list.txt2>&1
将显示的数据,不论正确或错误均输出到list.txt当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式!
[test@testtest]#ls-al1>list.txt2>/dev/null
将显示的数据,正确的输出到list.txt错误的数据则予以丢弃!/dev/null,可以说成是黑洞装置。为空,即不保存。
1.4为何要使用命令输出重导向
•当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
•背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
•一些系统的例行命令(例如写在/etc/crontab中的文件)的执行结果,希望他可以存下来时;
•一些执行命令,我们已经知道他可能的错误讯息,所以想以『2>/dev/null』将他丢掉时;
•错误讯息与正确讯息需要分别输出时。
总结
以上所述是小编给大家介绍的Linux中重定向问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。