-
基础知识铺垫
0:标准输入stdin
1:标准输出stdout
2: 标准错误输出stderr -
基本使用
>,默认为标准输出重定向,与1>相同
2>&1, 意思是把标准错误输出 重定向到 标准输出.
&> file, 意思是把标准输出 和 标准错误输出 都重定向到文件file中。也可以写为 >& file, 这两种方式都和">file 2>&1"一个语义。参考【深入理解Linux bash shell中2>1的含义】
/dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉。 -
关于2>&1的位置
command > outfile 2>&1, 将标准输出和标准错误输出都写到文件outfile中
command 2>&1 > outfile, 标准输出 写到outfile,标准错误写到标准输出(即屏幕中),因为第二条命令先错误输出输出到定向到标准输出上,这时候标准输出还没被重定向,仍然是屏幕。参考【3】
关于 为什么2>1要放在后面?也可以参考【深入理解Linux bash shell中2>1的含义】来理解一下 -
关于空格的问题:
fd(0/1/2)和>之间不能有空格,否则 Shell 会解析失败;>和fil
shell 重定向 2>&1
于 2022-06-05 16:07:24 首次发布