&1"的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际"/>
我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux shell 中 2>&1的含义

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux shell 中 2>&1的含义

linux shell 中"2>&1"的含义

脚本:

nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &

对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。

command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。

试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

可以用

ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。
何2>&1要写在后面?

command > file 2>&1

首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:

1. command > file 2>&1

这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)

2. command 2>&1 >file

这个命令中实现重定向的关键系统调用序列是:

dup2(1,2)
open(file) == 3
dup2(3,1)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux shell 中 2>&1的含义

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux shell 中 2>&1的含义

linux shell 中"2>&1"的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际
2022-06-04

Linux shell中2>&1的含义是什么

这篇文章主要介绍Linux shell中2>&1的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!A.首先了解下1和2在Linux中代表什么在Linux系统中0 1 2是一个文件描述符名称代码操作符Java中
2023-06-09

shell中1小于/dev/null 2大于&1的含义

shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标
2022-06-04

shell中1小于/dev/null 2大于&1的含义是什么

这篇文章主要介绍shell中1小于/dev/null 2大于&1的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义
2023-06-09

如何理解shell 1>&2 2>&1 &>filename重定向的含义和区别

本篇内容介绍了“如何理解shell 1>&2 2>&1 &>filename重定向的含义和区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
2023-06-09

深入理解Linux shell中2>&1的含义(全网最全,看完就懂)

A.首先了解下1和2在linux中代表什么在Linux系统中0 1 2是一个文件描述符名称代码操作符java中表示Linux 下文件描述符(Debian 为例)标准输入(stdin)0< 或 <
2022-06-04

详解nohup /dev/null 2&gt;&1 含义的使用

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。 该命令的一般形式为:
2022-06-04

浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释

摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(Pr
2022-06-04

如何分析linux中shell变量$#,$@,$0,$1,$2的含义

本篇文章为大家展示了如何分析linux中shell变量$#,$@,$0,$1,$2的含义,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。linux中shell变量$#,$@,$0,$1,$2的含义解释
2023-06-28

linux shell中2>&1是什么意思

这篇文章主要介绍了linux shell中2>&1是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。linux shell 中"2>&1"的含义脚本:nohup /mn
2023-06-09

shell 1>&2 2>&1 &>filename重定向的含义和区别

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表
2022-06-04

shell中>/dev/null 2>&1是什么意思

小编给大家分享一下shell中>/dev/null 2>&1是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到指定的位置。在
2023-06-09

linux shell中$$的含义是什么

这篇文章主要介绍“linux shell中$的含义是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux shell中$的含义是什么”文章能帮助大家解决问题。在linux中,shell是一个
2023-06-29

linux中shell变量$#,$@,$0,$1,$2是什么意思

这篇文章主要为大家展示了“linux中shell变量$#,$@,$0,$1,$2是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中shell变量$#,$@,$0,$1,$2是什
2023-06-09

mysql中limit 1的含义是什么

在 MySQL 中,LIMIT 1 是一种用于限制查询结果行数的语句。当使用 LIMIT 1 时,表示只返回查询结果集中的第一行数据。这个功能通常在需要查询单个特定行或者只对结果集中的第一行进行操作时非常有用。通过结合其他条件和排序方式,
mysql中limit 1的含义是什么
2024-04-09

Linux下" >/dev/null 2>&1 "的相关知识有哪些

这期内容当中小编将会给大家带来有关Linux下" >/dev/null 2>&1 "相关知识有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一些终端命令或者程序中有">/dev/null 2>&1 "
2023-06-05

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果;但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试、难以阅读。 这些特殊符号罗列
2022-06-04

linux中tmp的含义是什么

本篇内容主要讲解“linux中tmp的含义是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中tmp的含义是什么”吧!linux中tmp指的是一个存储临
2023-03-10

linux中ll的含义是什么

这篇文章主要讲解了“linux中ll的含义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ll的含义是什么”吧!在linux中,“ll”是“ls -l”命令的别名,ls命令用
2023-06-29

Linux中点的含义是什么

这篇文章主要介绍了Linux中点的含义是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Paul Brown 解释了 Linux shell 命令中那个不起眼的“点”的各种
2023-06-16

编程热搜

目录