无法将 scp 与 bash 别名一起使用

Léo*_* 준영 17 scp bash-alias

此代码不起作用:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/
Run Code Online (Sandbox Code Playgroud)

别名是:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

编辑

是否可能类似于以下代码,例如运行多个bash?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/
Run Code Online (Sandbox Code Playgroud)

我没有让上面的代码工作。

小智 26

我不建议您使用 Bash 别名来完成您要完成的任务。您只需将所有信息输入 SSH 的配置文件即可完成。ssh_config如果您好奇这些来自哪里,请阅读手册页。你可以做一些整洁的事情ssh_config

该文件位于此处 ~/.ssh/config

使用您喜欢的编辑器并创建文件,然后根据您的情况进行调整。

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22
Run Code Online (Sandbox Code Playgroud)

您现在已设置为发出以下命令:

$ ssh nameOfBashAlias 
Run Code Online (Sandbox Code Playgroud)

我敢打赌你不知道这一切是多么的整合。现在你有了这个设置,下面的命令也可以工作

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 
Run Code Online (Sandbox Code Playgroud)

不再记得 scp 使用“-P”作为端口而 ssh 使用“-p”。此外,这个“别名”也适用于像 Transmit 这样的 OS X gui 应用程序。

OpenSSH 按以下顺序从以下来源获取配置数据:

  1. 命令行选项
  2. 用户的配置文件 ~/.ssh/config
  3. 系统范围的配置文件 /etc/ssh_config


小智 5

scp不运行 bash。你需要运行这个:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/
Run Code Online (Sandbox Code Playgroud)

如果您拥有的只是别名而上述代码对您来说是不可能的,请考虑像这样运行它:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您实际上是在调用ssh文件内容并将其定向到磁盘上的文件。这可以写成上传的另一种方式。