Linux“数据流重定向”详解教程

数据流重定向(redirect)就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方,例如:文件或设备(打印机之类的)。这玩意在Linux的命令行模式下很重要,尤其是想要将某些数据存储下来时!

 

一、什么是数据流重定向?

数据流重定向就是将数据标准输出和数据标准错误输出分别传送到文件或者设备中去;

分为以下三种:

 

1、标准输入  (stdin) :代码为 0 ,使用 < 或 <<

2、标准输出  (stdout)\(standard output):代码为 1 ,使用 > 或 >>

3、标准错误输出(stderr)\(standard error output):代码为 2 ,使用 2> 或 2>>

 

使用方法说明:

1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上;

1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上;

2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上;

2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上;

 

二、Linux数据流重定向 使用示例

 

创建一个用户:laofan ,

useradd laofan

 

当我们用laofan这个账户 执行find 命令时,由于权限问题会报错。

su laofan     #切换为laofan
find /home -name .bashrc    #执行查找命令

 

由于 /home 下边还有我们建立的其他用户,这些账户的根目录你当然不能进入,所以就有错误和正确数据了。

 

情景一:假如我想要将数据输出到 list 这个文件中

 find /home -name .bashrc > list

结果: list里边存了刚刚那个 正确的输出数据,屏幕上还会有错误的信息出现

 

情景二:我想要把正确的与错误的信息分别存入不同的文件

find /home -name .bashrc > list_right 2> list_error

结果: 此时屏幕上不会出现任何信息了。刚刚执行的结果中,有 Permission 的那几行错误信息都会进入 list_error文件中,正确的输出数据会到 list_right文件中!

 

三、垃圾桶黑洞: /dev/null

#将错误信息丢弃,屏幕只显示正确的信息
find /home -name .bashrc  2>   /dev/null     

#将命令的数据全部写入文件list
find /home -name .bashrc   &> list

#将命令的数据全部丢进垃圾桶
find /home -name .bashrc   &>   /dev/null
    A+
发布日期:2019年11月29日 13:45:16  所属分类:Linux
最后更新时间:2019-11-29 13:46:39
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
头像
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元
SEO顾问 中小型网站 单站/最低99.9元 全方位优化
SEO顾问 中小型网站 单站/最低99.9元 全方位优化
  • ¥ 99.9元
  • 市场价:5000元
wp discux 帝国 dedecms phpcms等快速建站
wp discux 帝国 dedecms phpcms等快速建站
  • ¥ 99.9元
  • 市场价:499.9元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: