我有一些使用 bash 的经验,但是我在教程中看到的这个命令让我措手不及:
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Run Code Online (Sandbox Code Playgroud)
我知道命令的作用。它获取文件的输出~/.ssh/id_rsa.pub
,然后将ssh
s 发送到远程服务器,在用户 home 下创建一个名为 .ssh 的新目录,然后创建一个名为的新文件authorized_keys
并将其内容id_rsa.pub
倒入该文件中。我无法弄清楚的是,此时id_rsa.pub
文件的内容会被注入到授权密钥文件中。
所以,我知道管道 (|) 将输出带到其左侧并将其提供给它右侧的命令。但通常我们使用 cat 命令是这样的:
cat "content_to_be_added" >> file_to_be_appended
Run Code Online (Sandbox Code Playgroud)
所以,如果我没记错的话,id_rsa.pub
应该在 >> 之前注入内容,以使其正常工作。那么,这个功能究竟如何,为什么?
顺便说一句,请随时更正我的术语。如果您能告诉我这里的操作员>>
是否有特定名称,我也将不胜感激。