数据流重导向

数据流重导向是什么?

我们执行一个指令时,指令可能需要先从档案中读取数据,经过指令处理之后,将结果输出到屏幕上。如果指令错误或是文档不存在,
错误结果也会显示到屏幕上来,这就是我们通常所说标准错误输出。当然我们也可以将结果传送到别的地方,而不是在屏幕上
显示,比如使用文件记录结果,这就是数据流重导向。而传送的指令有:

1.标准输入(stdin): 代码为0 ,使用 < 或 <<;
2.标准输出(stdout): 代码为1 ,使用 > 或 >>;
3.标准错误输出(stderr): 代码为2 ,使用2> 或 2>>;

其中>是新建或清空文件内容并覆写,>>则是追加到文本尾部。

数据流重导向有什么用?

• 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
• 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
• 一些系统的例行命令(例如写在 /etc/crontab 中的档案)的执行结果,希望他可以存下来时;
• 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;
• 错误讯息与正确讯息需要分别输出时。

接下来展示几个常用的数据重导向例子:

//将ls结果记录到文件中
ls -l / > /home/ls.txt

//将ls错误的结果记录道文件中 /abc目录不存在
ls -l /abc/ 2> /home/lserr.txt

//将ls结果追加道ls.txt
ls -al / >> /home/ls.txt

//将ls正确结果记录道文件a中,错误结果记录到文件b中
ls /home/mark/ 1> list_right 2> list_error

//讲ls正确结果和错误结果都记录到同一个文件 特殊写法
ls /home/mark/ > list 2>&1

//将正确结果记录,错误结果丢弃
ls /home/mark/ 1> list_right 2> /dev/null

//使用文本内容代替键盘输入 读取contfile内容 输入到catfile中
cat > catfile < contfile

//也可以使用自定义结束符号代替ctrl+d结束输入,例如输入完毕之后输入eof自动退出编辑
cat > catfile <<eof 

–end–

参考文献:《鸟哥的Linux私房菜》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值