先说2>&1的含义:表示将标准错误输出重定向到标准输出。
在linux系统中,有三个特殊的文件描述符:0,1,2,这三个文件描述符表示的含义如下;
0:表示stdin,键盘输入,对应文件路径为/proc/self/fd/0
1:表示stdout,键盘输入,对应文件路径为/proc/self/fd/1
2:表示stderr,键盘输入,对应文件路径为/proc/self/fd/2
使用ls -ll查看该三个设备文件,如图1命令1,其分别对应在/proc/self/fd目录下0,1,2。
而/proc/self/fd目录下0,1,2又对应/dev/pts/3设备文件。
图1
在linux系统中,使用2>&1命令时,>&是一个整体,不能分开,如果分开使用,则作用也就变了,如图2命令1。
图2
2>&1命令的格式用法为:command >>(或者>) 文件名 2>&1 &;
command表示命令,如cat命令,程序运行命令等。
>>或者>表示将输出信息重定向还是追加到文件中。
文件名:表示保存信息的文件名。
如图3命令1:
图3