如何将输出附加到文件中?

151

如何执行类似command > file的操作,使其在文件末尾添加内容而不是覆盖原有内容?


1
Bash参考手册中有很多好东西,也许太多了!其中包括各种重定向。根据需要进行调整。 - user166390
4
如果你想将输出同时重定向到标准输出和追加到一个文件中,可以使用tee命令。例如:echo "hello" | tee -a somefile.txt,其中的-a选项表示追加。 - Henrik
2个回答

261

使用>>进行追加:

command >> file

117

嗯。

command >> file 将只重定向 stdout 到文件,其中command是指命令。

command >> file 2>&1 可以将stdoutstderr都重定向到文件中(适用于bash、zsh)。

如果您需要使用sudo,请记住:

sudo command >> /file/requiring/sudo/privileges 是无法正常工作的,因为特权升级只针对command而不是shell重定向部分。但是,简单地使用tee就可以解决这个问题:

command | sudo tee -a /file/requiring/sudo/privileges


7
我将为您进行翻译:我正在使用这个命令来捕获所有输出:program.sh 2>&1 | tee -a screen.log。“-a”代表追加。 - Xdg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接