码迷,mamicode.com
首页 > 系统相关 > 详细

小蚂蚁学习Linux(10)——Linux输出重定向和输入重定向

时间:2015-11-05 19:08:48      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

说起输出重定向,先了解一下什么是标准的输入输出设备:

    设备                                    文件名                        文件描述符                            类型

    键盘                                    /dev/stdin                        0                                    标准输入

    显示器                                /dev/sdout                        1                                    标准输出

    显示器                                /dev/sdterr                        2                                    标准错误输出

    虽然在现代输入设备还有什么鼠标,游戏手柄什么的,输出设备还有什么投影仪了打印机了,但是在最早期就是一个键盘一个显示器走天下。


输出重定向

    >    大于号,把本来应该输出到屏幕上的内容显示在文件中,相当于保留了日志(就是这么一个意思)

    例如:    ls    >    test.log    把当前目录下的内容保存在test.log之中。但是这种方式只能是覆盖,只能看到最后一次重定向的内容。

    >>    双大于号,同样是把本来应该输出到屏幕上的内容显示在文件中,但是,这种方式是以追加的方式写入,之前的日志内容还保留,很显然,这种方式要比覆盖好的多。

    但是,有个问题,在命令执行成功的时候,它确实能把内容重定向到test.log,但是当命令不存在或者命令出错的时候,重定向就失效了,怎么把命令出错的信息重定向下来呢?

    2>    可以将错误信息重定向到日志文件,同样的,一个大于号是覆盖的意思。

    例如:    sldfo(随便写的一个命令)    2>test.log    注意:错误信息重定向的时候大于号前后不要加空格。

    2>>    同上,但是两个大于号是追加的意思。

    例如:    sldjfs    2>>test.log    同样的,大于号前后不要加空格


    其实,这两种写法都有一个弊端,不带2的重定向只能执行成功的命令,而带着2的重定向只能执行失败的命令,这使用起来就显得很纠结了,很不爽    (??)nnn     要想爽一下,推荐使用以下命令:

    &>    不管命令是否能够正确执行,都会把输出的信息重定向到同一个文件中,当然,老惯例,这是覆盖。

    例如:  ls    &>    test.log

    &>>    同样的,这是追加。这样使用起来就爽快多了,正确的有正确的信息,错误的有错误的信息,多省心    ╰( ̄▽ ̄)╭   

    以上两种方法是推荐的写法,其实还有两个方法跟上面两个方法是一样的效果,有点啰嗦,知道就行:

    命令    >    文件    2>&1    以覆盖的方式,把正确输出和错误输出都保存到同一个文件中去。功能上完全等于    &>。

    命令    >>    文件    2>&1   以追加的方式……    功能上完全等同于    &>>

    注意的一点:无论哪一个错误输出命令,大于号前后都必要加空格。

    对了,还有一个使用方法

    命令    >>    文件1    2>>文件2        把正确的输出追加到文件1中,把错误的输出追加到文件2中,这个感觉就更加清晰明了了。


输入重定向

    和 > 正好相反,输入重定向用的是小于号 <    。可以使用wc命令测试一下。

    wc    【选项】    【文件名】

    选项    -c    统计字节数    -w    统计单词数    -l    统计行数

    例如:    wc    <    test.log    就回显示出字节数、单词数、行数。

    输入重定向不常用,了解一下。

学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog



小蚂蚁学习Linux(10)——Linux输出重定向和输入重定向

标签:

原文地址:http://my.oschina.net/woshixiaomayi/blog/526635

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!