Linux重定向
linux中经常需要后台执行程序,并将程序输出结果记录到本地文件,因此可选择>>或者>操作。
追加模式>> 示例:echo ‘abc’ >>test.txt
覆盖模式> 示例:echo 'abc'>test.txt
0标准输入、1标准输出(一般使用时默认的是标准输出)、2标准错误输出
示例:将程序的错误信息输出到log文件中 ./program 2>log
注意:标准输出还是在屏幕上,但是错误信息会输出到log文件中
注意:2>&1将错误信息重定向到标准输出
/dev/null
linux下特殊文件/dev/null,所有重定向到它的信息都会消失。当我们不需要回显程序的所有信息时,既可以将输出重定向到它。
示例:ls 1>/dev/null 2>/dev/null
将标准输出和错误信息都不显示。如下方法有同样结果。
示例:ls >/dev/null 2>&1
注意:顺序不能更改,先把标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,因为标准输出已经重定向到了/dev/null,因此标准错误也将重定向到/dev/null
nohup结合/dev/null
使用nohup时,会自动将输出写入默认nohup.out文件,文件会持续增大
nohup ./program >/dev/null 2>log &
nohup ./program >/dev/null 2>&1 &