cat 命令 - 它会覆盖吗?

MEM*_*MEM 8 ssh command-line

为了将一个文件的内容传递给另一个文件,我们可以,例如:

cat ~/temp_minhakey.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

比方说,我们需要向authorized_keys附加更多内容,但我们不想覆盖它。

我们应该再次使用 cat 作为下一个键吗?或者我们应该用一些特定的东西来标记?

提前致谢。

Lek*_*eyn 18

cat ~/temp_minhakey.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

将内容附加~/temp_minhakey.pub~/.ssh/authorized_keys,它不会覆盖它。这是安全的。

您可能会对>覆盖文件的单个文件感到困惑。下一个命令将覆盖您的authorized_keys文件:

cat somefile > ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)


Ima*_*ots 7

该命令的最后一部分与 cat 无关;>> 是一个 shell 重定向,它总是附加到您指定的任何目标文件。如果您使用 > 代替,那么它会覆盖文件。

还有其他几种 shell 重定向,如果您了解它们的全部内容以及何时使用它们,您将在命令行上更有效率:

http://www.gnu.org/software/bash/manual/bashref.html#Redirections