>/dev/null 2>&1 顺序反了就没用了

文章介绍了Linux命令行中如何使用>/dev/null2>&1来丢弃标准输出和标准错误输出。文件描述符0、1、2分别代表标准输入、输出和错误。通过重定向符号,可以将输出导向/dev/null以清除信息。错误的用法会导致标准错误输出仍然显示,而正确的用法应为command>/dev/null2>&1,确保两者都被重定向到/dev/null。
摘要由CSDN通过智能技术生成

介绍

如果你想同时丢弃标准输出和标准错误输出,>/dev/null 2>&1写的对。我写错了2>&1 >/dev/null,没有用,但是我不太明白,所以我仔细研究了符号。

必备知识

首先关于数字。这些数字是分配给输入/输出接口的标识号,称为文件描述符。各如下

标准输入(stdin):0
标准输出(stdout):1
标准错误输出(stderr):2

接下来,关于>符号。>后面指定一个路径称为重定向,可以>将后面命令的执行结果的输出目的地设置为任意路径。/dev/null是当您想丢弃它而不将其写入任何文件或在重定向时将其显示在屏幕上时指定的特殊路径。/dev/null文件不存在。

最后,关于&的符号。如果将它放在文件描述符的前面&,则表示“当前为文件描述符指定的接口设置的输出目标”。例如,&1将表示输出目标设置为标准输出(1)。
例如,command 2>&1您可以通过如下指定将标准错误输出(2)的输出目标设置为标准输出(1)的输出目标。

详细分析

错误情形

command 2>&1 >/dev/null

首先

  • 2→stderr
  • 1→stdout

2>&1之后

  • 2→stdout
  • 1→stdout

>/dev/null之后

  • 2→stdout
  • 1→/dev/null

正确情形

command >/dev/null 2>&1

首先

  • 2→stderr
  • 1→stdout

>/dev/null之后

  • 2→stderr
  • 1→/dev/null

2>&1之后

  • 2→/dev/null
  • 1→/dev/null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值