数据流重定向

        1.什么是数据流重定向

        当我们输入一个命令的之后,经过处理后,会将相应的数据输出到屏幕上,这些输出的数据分为两种,标准输出与标准错误输出,而另外输入还有标准输入,这三种数据的输入输出就叫做数据流;

         数据流重定向就是将这三个数据流导向制定的文件或设备,例如本来标准输出时应该输出到屏幕上,但是我利用重定向可以将原本应该输入到屏幕上的数据存储到一个文件中去,这就叫作重定向;

        2.标准输出重定向实现

[root@localhost test]# cat mytest
hello ereryone!
[root@localhost test]# cat test.txt >mytest
[root@localhost test]# cat mytest
hello ereryone!
可以看到本来应该输出的test.txt的内容被存储到mytest中了;

其中>与>>的区别为是否覆盖原来的数据,>会直接覆盖,而>>会累加原来的数据;

      3.标准错误输出重定向

       与标准输出重定向相同,不过符号改为2>与2>>,另外标准错误输出指的就是命令执行错误产生的输出;

[root@localhost test]# cat testxx.txt
cat: testxx.txt: 没有那个文件或目录
[root@localhost test]# cat testxx.txt 2>mytestxx
[root@localhost test]# cat mytestxx
cat: testxx.txt: 没有那个文件或目录

       因为没有testxx,txt这个文件,所以正常会输出错误信息,但是由于重定向到mytestxx中去了,所以不会输出任何信息,同时mytestxx中记录着本来应该输出的错误信息

         4.标准输入重定向

         标准输入重定向指的就是,将原本需要键盘输入的数据由文件内容来代替,这里我们就将刚才创建的mytest直接指向myfile这个文件,不需要键盘输入直接就将mytest内的内容输入到myfile中了;

 [root@localhost test]# cat >myfile <mytest
[root@localhost test]# cat myfile
hello ereryone!
         这里需要注意的是<<与标准输出>>的用法不同,<<是代表结束输入的意思,而不是累加;

[root@localhost test]# cat >myfile <<"eof"
> you are beautiful!
> eof
[root@localhost test]# cat myfile
you are beautiful!
这里键盘输入eof直接退出;

        5.把正确信息和错误信息输入到一个文件中

        如果我想把正确和错误信息都输入到一个文件中去有办法吗,肯定有的,这就要用到一些特殊写法了;

[root@localhost test]# cat myfile > list 2>&1

[root@localhost test]# cat myfile &>list

        6.屏蔽所有输出

        如果有的时候我们已经知道要输出错误,但是又想忽略调或者不显示的时候要怎么办呢?这个时候就可以把所有输出的信息指向/dev/null这个文件,这个文件会吞掉任何导向这个设备的信息;

[root@localhost test]# #这里我们cat一个不存在的文件并将错误信息导向/dev/null
[root@localhost test]# cat aaaaa.txt 2>/dev/null

          7.重定向的使用时机

1、屏幕输出的信息很重要,而且我们需要将它保存下来;
2、后台执行中的程序,不希望它干扰屏幕正常的输出结果;
3、一些系统的例行命令的执行结果,希望它能够保存下来;
4、一些执行命令的可能已知出错信息时,想以“2>/dev/null”将它屏蔽掉;
5、错误信息和正确信息需要分别输出;


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值