在文本文件底部添加终端输出

在文本文件底部添加终端输出

我在用:

command > ~/Desktop/file.txt

我的问题是我需要执行这个命令多次,每次都会给我不同的输出,此时每次我运行它时它都会删除所有内容并将新输出保存在文件中,显然这对我来说不起作用,因为我需要在当前输出中添加新输出。

我将非常感激您的帮助。

答案1

使用>>而不是>

command >> ~/Desktop/file.txt

当你使用时command > ~/Desktop/file.txt,该文件~/Desktop/file.txt被 shell 打开写作STDOUT(文件描述符 1)的内容。因此,每次运行 时,文件的内容都会被覆盖command

另一方面,shell 将打开文件追加如果您使用>>运算符。因此,command每次运行它时,都会附加其输出。

我建议你去本手册介绍 bash 重定向

答案2

使用‘>>’。 command >> ~/Desktop/file.txt

答案3

如果您在循环中运行它,则可以重定向整个循环的输出。

for (( i = 0; i < n; i++ )); do
    somecommand
done > ~/Desktop/file.txt

如果它有点复杂(例如其他内容也输出),您可以在单独的文件描述符上打开它。

exec 3> ~/Desktop/file.txt
...
somecommand >&3
...
somecommand >&3
...
exec 3>&- # closes it

答案4

你想要>>,而不是>,像这样:

command >> /path/to/file.txt

相关内容