shell命令中的“>”和“>>”有什么区别?

wha*_*ard 65 command-line

有人可以向我解释使用 shell 命令>>>使用 shell 命令时的区别吗?

例子:

ps -aux > log
ps -aux >> log
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,结果似乎都是一样的。

job*_*bin 69

>用于覆盖(“ clobber ”)文件并>>用于附加到文件。

因此,当您使用 时ps aux > file, 的输出ps aux将被写入file,如果名为的文件file已经存在,其内容将被覆盖。

如果您使用ps aux >> file, 的输出ps aux将被写入,file并且如果命名的文件file已经存在,则该文件现在将包含其先前的内容以及 的内容ps aux,在其旧内容之后写入file


sou*_* c. 13

如果你在终端写

ps aux > log
Run Code Online (Sandbox Code Playgroud)

它将把输出ps aux到日志命名文件。

那么如果你把

ps aux >> log
Run Code Online (Sandbox Code Playgroud)

然后下一个输出将附加在第一个输出下方。如果你只放一个>它会覆盖以前的文件。