2007-06-26

命令重定向

关键字: Linux 学习

        什么是命令重定向?简单地说就是将您目前的所得数据转到其他地方。例如我们常用的将当前屏幕输出数据转到文件中,就可以写成:ls -l /  >    test.txt   ,大于号">"就是将输出结果导向到test.txt文件的意思。此时:
  • 如果您执行ls -l,屏幕就会根目录的文件与子目录都显示在屏幕上;
  • 但 是当使用>导向到test.txt文件时,则屏幕不会显示任何信息,但是会将刚刚您执行的结果输出到test.txt文件中。若是这个文件存在,系 统会先将这个文件内容清空,然后将数据写入。也就是说,若以>将内容输出到一个已有文件中,该文件的原有数据就会被覆盖掉。
           除了>符号,bash命令执行过程中,还有3中输出输入清空,分别是
  • 标准输入:代码为0,或称为stdin,使用方式<
  • 标准输出:代码为1,或称为stdout,使用方式为1>
  • 错误输出:代码为2,或称为stderr,使用方式为2>
       基本的指令书写方式为:
       指令         >            设备或文件
                        2>
                        >>
                        <
       右边一定是指令,左边则可能是设备或者文件。需要注意的是1>和2>之间是没有空格的。
范例:
ls    -al   >   list.txt   // 将显示结果输出到list.txt文件中,若文件存在就覆盖它。

ls   -al   >>   list.txt   //将显示结果追加到list.txt文件中,原来的数据不丢失

ls   -al   1>   list.txt   2>   list.err   //   将显示数据正确输出到list.txt,错误的数据输出到list.err

ls   -al   1>   list.txt   2>&1    //   将显示数据不论正确或错误均输出到list.txt中。注意:错误与正确信息输出到同一个文件中,则必须以上面的方法来写,不能写成其他格式。

ls   -al   1>   list.txt   2>   /dev/null   // 将显示的数据,正确地输出到list.txt,错误的数据予以丢弃!

        在这里说明命令重定向里几个常用的符号与设备 
  • <:有<的右边读入参数文件;
  • >:将原本由屏幕输出的正确数据输出到>右边的file或者device(设备,如printer);
  • >>:将原本由屏幕输出的正确数据输出到>>右边,与>不同的是,该文件将不会被覆盖,而新的数据将以累加方式添加到文件的最后面;
  • 2>:将原本应该由屏幕输出的错误数据输出到2>的右边;
  • /dev/null:可以视为垃圾设备,任何导向这个设备的数据都会消失

 
评论
发表评论

您还没有登录,请登录后发表评论

yanshiyi
搜索本博客
最近加入圈子
存档
最新评论