Linux >&的用法 文件重定向

https://blog.csdn.net/qq_35242986/article/details/73772212

linux重定向中&>和>&是一个意思,是“复制一个文件描述符”的意思。

一、linux重定向的设备代码

  1.   标准输入(stdin) 代码为 0 ,实际映射关系:/dev/stdin -> /proc/self/fd/0 

  2.   标准输出(stdout)代码为 1 , 实际映射关系:/dev/stdout -> /proc/self/fd/1

  3.  标准错误输出(stderr)代码为 2 ,实际映射关系: /dev/stderr ->/pro/self/fd/2


二、linux重定向的符号意义

    1.  > 和 < 分别代表重定向的方向,是从左到右还是从右到左

    2.  >> 和 << 代表追加,也就是不改变重定向目标文件原有的内容,追加在后面。

   3.  >&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;

    4.  <&n 标准输入复制自文件描述符 n;

   5.  n<&- 表示将 n 号输入 关闭   
   6.  <&- 表示关闭标准输入(键盘)  
   7.  n>&- 表示将 n 号输出关闭
   8.  >&- 表示将准输出关闭
例如命令:
$ ./bin/run-example SparkPi 
结果如下:
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
17/06/27 10:23:16 INFO SparkContext: Running Spark version 2.0.2
17/06/27 10:23:17 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/06/27 10:23:17 WARN Utils: Your hostname, localhost.localdomain resolves to a loopback address: 127.0.0.1; using 192.168.41.129 instead (on interface eno16777736)
17/06/27 10:23:17 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address;;;;;;;;

执行时会输出非常多的运行信息,输出结果不容易找到,可以通过 grep 命令进行过滤(命令中的 2>&1 可以将所有的信息都输出到 stdout 中,否则由于输出日志的性质,还是会输出到屏幕中)

命令:
$ ./bin/run-example SparkPi 2>&1 | grep "Pi is roughly"
结果如下:
Pi is roughly 3.1434757173785868

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值