返回顶部
首页 > 资讯 > 操作系统 >linux shell 中 2>&1的含义
  • 241
分享到

linux shell 中 2>&1的含义

含义linuxshell 2022-06-04 21:06:03 241人浏览 八月长安
摘要

linux shell 中"2>&1"的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 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)

--结束END--

本文标题: linux shell 中 2>&1的含义

本文链接: https://lsjlt.com/news/18057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux shell 中 2>&1的含义
    linux shell 中"2>&1"的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,...
    99+
    2022-06-04
    含义 linux shell
  • Linux shell中2>&1的含义是什么
    这篇文章主要介绍Linux shell中2>&1的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!A.首先了解下1和2在Linux中代表什么在Linux系统中0 1 2是一个文件描述符名称代码操...
    99+
    2023-06-09
  • shell中1小于/dev/null 2大于&1的含义
    shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123...
    99+
    2022-06-04
    含义 dev shell
  • 如何理解shell 1>&2 2>&1 &>filename重定向的含义和区别
    本篇内容介绍了“如何理解shell 1>&2 2>&1 &>filename重定向的含义和区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
    99+
    2023-06-09
  • shell中1小于/dev/null 2大于&1的含义是什么
    这篇文章主要介绍shell中1小于/dev/null 2大于&1的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell中可能经常能看到:>/dev/null 2>&1 命令的...
    99+
    2023-06-09
  • 深入理解Linux shell中2>&1的含义(全网最全,看完就懂)
    A.首先了解下1和2在linux中代表什么 在Linux系统中0 1 2是一个文件描述符 名称 代码 操作符 java中表示 Linux...
    99+
    2022-06-04
    Linux shell 2>&1
  • 详解nohup /dev/null 2>&1 含义的使用
    nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。 ...
    99+
    2022-06-04
    linux nohup linux dev linux null 2>&1
  • linux shell中2>&1是什么意思
    这篇文章主要介绍了linux shell中2>&1是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。linux shell 中"2>&1...
    99+
    2023-06-09
  • 浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释
    摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: ...
    99+
    2022-06-04
    浅谈 变量 含义
  • 如何分析linux中shell变量$#,$@,$0,$1,$2的含义
    本篇文章为大家展示了如何分析linux中shell变量$#,$@,$0,$1,$2的含义,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。linux中shell变量$#,$@,$0,$1,$2的含义解释...
    99+
    2023-06-28
  • shell 1>&2 2>&1 &>filename重定向的含义和区别
    当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程式中,最常使用的 FD (file descriptor) 大...
    99+
    2022-06-04
    重定向 含义 区别
  • shell中>/dev/null 2>&1是什么意思
    小编给大家分享一下shell中>/dev/null 2>&1是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果...
    99+
    2023-06-09
  • linux shell中$$的含义是什么
    这篇文章主要介绍“linux shell中$的含义是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux shell中$的含义是什么”文章能帮助大家解决问题。在linux中,shell是一个...
    99+
    2023-06-29
  • javascript中如何让“a==1&&a==2&&a==3”成立
    这篇文章主要讲解了“javascript中如何让“a==1&&a==2&&a==3”成立”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中如...
    99+
    2023-07-05
  • JavaScript中怎么让x == 1 && x == 2 && x ==3等式成立
    今天小编给大家分享一下JavaScript中怎么让x == 1 && x == 2 && x ==3等式成立的相关知识...
    99+
    2023-07-02
  • linux中shell变量$#,$@,$0,$1,$2是什么意思
    这篇文章主要为大家展示了“linux中shell变量$#,$@,$0,$1,$2是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中shell变量$#,$@,$0,$1,$2是什...
    99+
    2023-06-09
  • mysql中limit 1的含义是什么
    在 MySQL 中,LIMIT 1 是一种用于限制查询结果行数的语句。当使用 LIMIT 1 时,表示只返回查询结果集中的第一行数据...
    99+
    2024-04-09
    mysql
  • springBoot server.port=-1的含义说明
    springBoot server.port=-1的含义 今天遇到这种新奇的写法,项目是可以正常启动的。 然而http的端口有范围:1~65535。-1是访问不了的 而且只要是负数...
    99+
    2024-04-02
  • Linux下" >/dev/null 2>&1 "的相关知识有哪些
    这期内容当中小编将会给大家带来有关Linux下" >/dev/null 2>&1 "相关知识有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一些终端命令或者程序...
    99+
    2023-06-05
  • mysqldump --master-data=2参数的含义
    mysqldump --master-data[=value] 该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入C...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作