数据流重定向

数据流重定向在Linux中用于将命令的输出或错误信息重定向到文件或设备,如标准输出(1>或>>)、标准错误输出(2>或2>>)。它允许将正确信息和错误信息分开存储,例如使用>`dataflow`覆盖文件内容,或>>追加到文件。错误信息可以单独存储,例如2>`ErrorInfo`。同时,`/dev/null`可以用来丢弃不需要显示或存储的信息。
摘要由CSDN通过智能技术生成

数据流重定向是什么

一般来说,我们使用命令行来操作Linux,那这跟数据流重定向又有什么关系呢?举个栗子,假设你需要将一个命令所输出的信息存储到一个文件里面该怎么办?,那么数据流重定向就能解决这个问题。一般来说你执行一个命令通常它会是下面这张图所示的,

当我们执行一个命令时,这个命令可能会先从文件读取数据,经过处理之后,再将数据输出到屏幕上。输出可以分为标准输出(standard output)和标准错误输出(standard error output)。

  • 标准输出与标准错误输出

标准输出指的是命令是指命令执行成功所传回来的正确信息,而标准错误输出则是命令执行失败之后所传回来的信息。比如,我使用这个cat命令来展示文件信息,如果被展示的文件存在,则会将文件的内容输出到屏幕上,而这就是标准输出。如果被展示的文件不存在,则会将错误信息输出到屏幕上,而这就是标准错误输出。如果我们想把正确的信息和错误的信息分开存储到不同的文件中,则可以使用下面这些特殊字符:

  1. 标准输出(stdout) : 代码为1,使用>或>>。
  2. 标准错误输出(stderr): 代码为2,使用2>或2>>。

下面是具体的用法:

这里写图片描述

ls .命令输出的信息通过>(也可以写成1>)存储到dataflow这个文件中,如果dataflow文件存在,则会创建这个文件,并把ls .命令的输出的信息存储到这个文件中(如果此文件已经有内容则会被覆盖),所有的数据流操作都是如此。如果不想文件内容被覆盖则可以使用下面这个命令。

这里写图片描述

是里使用>>(也可以写成1>>)将echo $PATH 输出的信息累加到dataflow 文件中。下面是标准错误输出的用法。

这里写图片描述

使用2>则可以将错误的信息存储到指定的文件中。如果不想指定文件的内容不被覆盖则可以使用2>>,把错误信息和正确信息存储到一个文件中可以使用&>。这里就不在多做演示。如果想将正确的信息和错误的信息分别存储不同的文件中则可以使用下面这个用法。

这里写图片描述

find /home -name .bashrc 命令会查找/home 目录是否有.bashrc文件的存在。因为该命令会检查所有指定目录下的文件,而这些文件不一定有足够的权限可以访问,所以可能会引发权限不足的错误信息。在这个用法中,使用>将正确的信息存储到RightInfo中,把错误的信息存储到ErrorInfo中。

/dev/null信息垃圾桶设备
这个设备的用处是用是,如果你不想错误信息输出到屏幕上,并且也不存储到文件中,就可以将信息输出到这个设备中。这个设备会将错误信息吃掉。下面是用法:

这里写图片描述

参考

《鸟哥的Linux私房菜》


如此文章有不对地方请多多指正!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值