make all >& compilelog.txt
多次调用,下一次编译日志会覆盖上一次吗?
是的,如果你多次调用 make all >& compilelog.txt
,每次编译的日志都会覆盖上一次的日志。这是因为重定向操作会将文件内容清空并写入新的输出。
示例
假设你第一次运行:
make all >& compilelog.txt
这会将第一次编译的输出和错误信息写入到 compilelog.txt
文件中。
然后你再次运行:
make all >& compilelog.txt
这次编译的输出和错误信息会覆盖 compilelog.txt
文件中的内容,之前的记录会被清除。
如何保留所有日志
如果你希望保留每次编译的日志,可以使用追加重定向符号 >>
而不是覆盖重定向符号 >
。
使用追加重定向
make all >> compilelog.txt 2>&1
这样,每次编译的输出和错误信息都会被追加到 compilelog.txt
文件的末尾,而不会覆盖之前的内容。
总结
-
覆盖模式:
make all >& compilelog.txt
每次运行时会覆盖compilelog.txt
文件的内容。 -
追加模式:
make all >> compilelog.txt 2>&1
每次运行时会将新的内容追加到compilelog.txt
文件的末尾,保留之前的内容。question_type_trigger