要将标准输出重定向到Bash中的截断文件,我知道要使用:
cmd > file.txt
要重定向Bash中的标准输出,将其附加到文件,我知道要使用:
cmd >> file.txt
要将标准输出和标准错误重定向到截断的文件,我知道可以使用:
cmd &> file.txt
如何将标准输出和标准错误附加重定向到文件?cmd&>>file.txt对我不起作用。
要将标准输出重定向到Bash中的截断文件,我知道要使用:
cmd > file.txt
要重定向Bash中的标准输出,将其附加到文件,我知道要使用:
cmd >> file.txt
要将标准输出和标准错误重定向到截断的文件,我知道可以使用:
cmd &> file.txt
如何将标准输出和标准错误附加重定向到文件?cmd&>>file.txt对我不起作用。
当前回答
在Bash中,您还可以明确指定指向不同文件的重定向:
cmd >log.out 2>log_error.out
附录应为:
cmd >>log.out 2>>log_error.out
其他回答
在Bash中,您还可以明确指定指向不同文件的重定向:
cmd >log.out 2>log_error.out
附录应为:
cmd >>log.out 2>>log_error.out
这应该很好:
your_command 2>&1 | tee -a file.txt
它会将所有日志存储在file.txt中,并将其转储到终端中。
在Bash 4(以及Z外壳(zsh)4.3.11)中:
cmd &>> outfile
只是开箱即用。
cmd >>file.txt 2>&1
Bash从左到右执行重定向,如下所示:
>>file.txt:以追加模式打开file.txt并将stdout重定向到那里。2> &1:将stderr重定向到“stdout当前所在位置”。在本例中,这是一个以追加模式打开的文件。换句话说,&1重用stdout当前使用的文件描述符。
试试看:
You_command 1> output.log 2>&1
您对&>x.file的使用在Bash 4中确实有效。很抱歉:(
这里有一些额外的提示。
0, 1, 2, ..., 9是bash中的文件描述符。
0代表标准输入,1代表标准输出,2代表标准误差。3~9是备用的,用于任何其他临时用途。
通过使用运算符>或>>(append),可以将任何文件描述符重定向到其他文件描述符或文件。
用法:<file_descriptor>><filename|&file_descriptor>
请参阅第20章中的参考文献。I/O重定向。