首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux2>&1的含义

A Linux0、12的含义 名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例) 标准输入(stdin) 0 /dev/pts/0 标准错误输出(stderr) 2 2> 或 2>> System.err /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0...不能写成2&>1 C 为什么2>&1要放在后面 例子:nohup java -jar app.jar >log 2>&1 & 最后一个&表示把这条命令放后台运行 问题:为什么2>&1放在>log后面??...回答: 我们不妨把12都理解是一个指针,那么这么想 本来1->屏幕(1指向屏幕) 执行>log后,1->log(1指向log) 执行2>&1后,2->12指向1,而1指向log,因此2也指向了...log) 那么再分析一下nohup java -jar app.jar 2>&1 >log & 本来1->屏幕 执行2>&1后,2->12也指向屏幕) 执行>log后,1->log(这时候1指向log

97461
您找到你想要的搜索结果了吗?
是的
没有找到

Linux>,>>,>&,&>,&,&&,|,||,2>&1到底是什么?

前言 在linux我们时常能见到>,>>,>&,&>,&,&&,|,||,2>&1等符号,它们到底是什么?下面浅谈一下我的看法,如有不对的地方请大家及时指正!...linux的文件描述符和重定向 文件描述符 在介绍上述符号表示什么之前,我们需要先知道在linux中有三种标准的文件描述符(也支持自定义),分别为: • 0:表示标准输入(stdin) • 1:表示标准输出...access 2: No such file or directory 从上面的例子可以看到ls donot_exist.txt >output.log 2&>1与ls donot_exist.txt...2&>1 2&>1表示将标准错误输出重定向至标准输出。...例如,先通过2&>1将标准错误2输出重定向至标准输出1,再通过>将标准输出1重定向到为output.log,使得output.log也包含了标准错误信息。

2.3K20

深入理解 Linux shell 2>&1 的含义

首先了解下12Linux中代表什么 在Linux系统0 1 2是一个文件描述符 名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例) 标准输入(stdin) 0 log 2>&1 & 为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log?..."error1",log文件则只有"out1" 每次都写">log 2>&1"太麻烦,能简写吗?...有以下两种简写方式 &>log >&log 比如上面小节的写法就可以简写为: nohup java -jar app.jar &>log & 上面两种方式都和">log 2>&1"一个语义。...语义上是没有任何区别的,但是第一方式是最佳选择,一般使用第一种 参考: https://unix.stackexchange.com/questions/89386/what-is-symbol-and-in-unix-linux

1.3K30

Linux Shell 1>devnull 2>&1 含义

那么12是什么? 在shell,每个进程都和三个系统文件 相关联:标准输入stdin,标准输出stdout、标准错误stderr,三个系统文件的文件描述符分别为0,12。...linux shell "2>&1"含义脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于&1 更准确的说应该是文件描述符 1,而1 一般代表的就是...command > file 2>&1          首先是command > file将标准输出重定向到file2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到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) 可以考虑一下不同的dup2()调用序列会产生怎样的文件共享结构

2.2K20

理解 Linux shell 的一个方言:2>&1

前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,...我们可以把文件内容发送到别的地方,例如,重定向到 output.txt 文件 : $ cat foo.txt > output.txt $ cat output.txt foo bar baz 其中第一个...回顾开头的那个命令: ls foo > /dev/null 2>&1 现在基本上已经可以理解了: stdout 重定向到 /dev/null stderr 重定向到 &1 /dev/null 是空设备的意思...&1 表示:文件描述符1 的值,也就是标准输出的值,那么 2>&1 就是 标准错误输出 与 标准输出 一样,也是重定向到空设备。 所以这个命令的意思是:正确信息和错误信息都不显示了。...> output 是 command 1> output 的简写 &文件描述符 是引用某个文件描述符的值 2>&1 是错误输出的位置与标准输出的位置相同

966120

Linux命令 黑洞>devnull和2>&1

linux命令的>/dev/null黑洞 Linux的标准输入输出 0是标准输入,一般是从键盘获得输入 1是标准输出,一般是输出到屏幕上 2是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了...,错误报告直接就删除了,不会显示在屏幕上 实例 如果出现这种有很多报错的情况,可以使用2>/dev/null这个选项将错误信息重定向到黑洞,只留下正确的信息回显,这个时候我们就能快速而精确的找到我们需要的文件了...2>&1 含义 将标准错误输出重定向到标准输出 符号>&是一个整体,不可分开 2>&12>1的区别 符号>&是一个整体 2>1的写法实际上是将标准错误输出重定向到名为”1“的文件中去了,没有1这个文件...,而不是1所代表的标准输出 写成2&>1也是不可以的 为什么2>&1要放在后面 可以将12都理解为一个指针 本来1----->屏幕 (1指向屏幕) 执行>log后, 1----->log (1指向log...) 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log) >和>>的区别 >是重定向文件,覆盖文件原有的内容 >>是重定向文件时,以追加的方式写入文件

43510

bash 2>&1 & 的解释

一、标准输入,标准输出,标准错误 bash0,12三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,...即ls > 1.txt会新建一个1.txt文件并且将ls的内容输出到新建的1.txt,而ls >> 1.txt则用在1.txt已经存在,而我们只是想将ls的内容追加到1.txt文本的时候。...非常直观的想法就是2>1。...; 查看文件1的内容,实际结果为:1 a.txt b.c c 可见步骤3 ls > 1并不是将ls的结果重定向为标准输出,而是将结果重定向到了一个文件1。...即1在此处不被解释为STDOUT_FILENO,而是文件1。 五、结论 到了此时,你应该也能猜到2>&1的用意了。不错,2>&1就是用来将标准错误2重定向到标准输出1的。

78720

为什么linux权限r对应4、w对应2、x对应1

第一个解释 我们都知道,在linux权限r对应的数字为4,w对应的数字为2,x对应的数字为1。 那,有没有人想过为什么4就代表r?2就代表w?难道是因为读起来朗朗上口???...实际上,rwx权限在操作系统,如果有,则是二进制1表示,如果没有,则是二进制0来表示。...那么,当文件同时拥有rwx权限时,在计算机权限就被标识成了二进制111,转换为十进制就变成了4(二进制100,r权限)+2(二进制10,w权限)+1(二进制1,x权限)=7(111,rwx权限),于是乎我们常用的...001,十进制是1; 具备多个权限,就把相应的 4、21 相加就可以了: 若要 rwx 则 4+2+1=7 若要 rw- 则 4+2=6 若要 r-x 则 4+1=5 若要 r-- 则 =4 若要 -...rwx: 可读可写可执行表示的二进位是111,转成8进制数是1x2^2 +1x2^1+1x2^0 = 4+2+1; 前两个解释抄自: https://www.ibadboy.net/archives/564

2.4K30

Linux下>devnull 2>&1 相关知识说明

在学习Linux的过程,常会看到一些终端命令或者程序中有 ">/dev/null 2>&1" 出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者google一下相关的知识。...0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 & == command 1>/dev.../null 2>&1 & 1)command:表示shell命令或者为一个可执行程序 2)>:表示重定向到哪里 3)/dev/null:表示Linux的空设备文件 4)2:表示标准错误输出 5)&1...:&表示等同于的意思,2>&1,表示2的输出重定向等同于1 6)1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null" 6)&:表示后台执行,即这条指令执行在后台运行...这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

881100

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

12Linux 中代表什么 在Linux系统0 1 2是一个文件描述符 image.png 从上表看的出来,我们平时使用的 echo "hello" > t.log 其实也可以写成...>log 2>&1 & (最后一个&表示把条命令放到后台执行,不是本文重点,不懂的可以自行Google) 为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log?..."error1",log文件则只有"out1" 每次都写">log 2>&1"太麻烦,能简写吗?...有以下两种简写方式 &>log >&log 比如上面小节的写法就可以简写为: nohup java -jar app.jar &>log & 上面两种方式都和">log 2>&1"一个语义。...那么 上面两种方式&>和>&有区别吗? 语义上是没有任何区别的,但是第一方式是最佳选择,一般使用第一种。

66820

PG的查询:2.统计--(1

统计信息包括: 1) 关系的行数reltuples 2) 关系大小,以页为单位relpages 3) 关系visibility map中被标记的页的页数relallvisible SELECT reltuples...大表,统计数据将不准确。因为分析器不会扫描每一行。即便扫描每一行,统计数据也总会有过期,因为表数据一直在变化。...被指定为pg_stats的null_frac。...Distinct值 一列distinct值个数存储在pg_stats的n_distinct字段。如果n_distinct为负值,则其绝对值表示不同值的比例。例如,对于-1值,表示这列的值都是唯一的。...−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− mcv | {CN1,CR2,SU9,321,763,733,319,773} mcf | {

99520
领券