文件描述符
Linux系统将每个对象当作文件处理,这包括输入和输出进程。Linux用文件描述符(file descriptor)来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开的文件。bash shell 保留了前三个文件描述符(0、1和2)。stdin: 标准输入,用0表示
stdout: 标准输出,用1表示
stderr: 标准错误输出,用2表示
bash 支持的输出重定向
输出重定向是指命令的结果不再输出到显示器上,而是输出到其它地方,一般是文件中。这样做的最大好处就是把命令的结果保存起来,当我们需要的时候可以随时查询。Bash 支持的输出重定向符号如下表所示。在输出重定向中,> 代表的是覆盖,>> 代表的是追加。command >file : 以覆盖的方式,把 command 的正确输出结果输出到 file 文件中。
command >>file : 以追加的方式,把 command 的正确输出结果输出到 file 文件中。
command 2>file : 以覆盖的方式,把 command 的错误信息输出到 file 文件中。
command 2>>file : 以追加的方式,把 command 的错误信息输出到 file 文件中。
command >file 2>&1 : 以覆盖的方式,把正确输出和错误信息同时保存到同一个文件(file)中。
command >>file 2>&1 : 以追加的方式,把正确输出和错误信息同时保存到同一个文件(file)中。
command >file1 2>file2 : 以覆盖的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。
command >>file1 2>>file2 : 以追加的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。