无法使用具有bash别名的scp


15

此代码不起作用:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

别名为:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

我该如何解决这个问题?

编辑

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

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

我没有使上面的代码正常工作。

Answers:


22

我不建议您使用Bash别名来完成您要完成的任务。您只需将所有信息输入SSH的配置文件中即可完成操作。阅读手册页,以了解ssh_config它们的来源。你可以做一些整洁的事情ssh_config

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

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

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

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

$ ssh nameOfBashAlias 

我敢打赌,您不知道的是这一切的集成程度。现在您已完成此设置,以下命令也可以使用

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

不再需要记住scp使用“ -P”作为端口,而ssh使用“ -p”。同样,此“别名”也可以在OS X gui应用(例如Transmit)中使用。

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

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

是的,我完全同意你的看法。我现在也使用这种方法,因为它与其他系统和其他工具的同步性更好。
莱奥列奥波尔德·赫兹준 영

在MacOSX上对我不起作用
Jabran Saeed 2014年

@JabranSaeed,请打开一个新问题或在此处提供社区Wiki作为您的案例的答案,并提供有关您的操作系统,版本,shell等的信息。请在此处提供有关挑战的链接。该线程与GNU scp有关。
莱奥波德·赫兹(LéoLéopoldHertz)2015年

FWIW似乎确实在OS X上有效(至少在我的El Capitain 10.11.6上有效)
Alex W

5

scp不运行bash。您将需要运行以下命令:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

如果您只有别名,并且上面的代码对您来说不可能,请考虑这样运行它:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

这样,您实际上是在调用ssh文件内容并将其定向到磁盘上的文件。可以用其他方式写这用于上传。


第一个命令应该是SCP〜/桌面/ favicon.ico的username@11.11.11.111:/的public_html / MYSITE /模板/博客/
莱奥列奥波尔德·赫兹준 영

2

别名是bash命令的第一个单词时,将被替换。您的别名出现在第三个单词的开头。

我将为此使用shell变量。

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

顺便说一句,我认为您的原始别名中不应包含ssh。最后一个代码示例中也包含一个>,看起来也很错误。


@mataap:非常感谢您的回答!
莱奥列奥波尔德赫兹준 영

0

不,您的示例将不起作用,因为BASH别名不是这样工作的。我建议您使用一个变量。将其放在您的~/.profile~/.bashrc[无论使用哪个]中:
site="user@site.com"
然后在您的终端中,它将起作用:
scp favicon.ico $site:/dir/


或者您可以像为iPod编写脚本一样编写脚本。在我的bashrc中,我有ipod=192.168.2.60,然后在我的脚本中,source ~/.bashrc所以它在脚本中获取了变量,然后在脚本中:scp $1 $ipod
缺点是我必须编辑脚本以进行递归。而且我只能做1个文件。但是当我需要其中任何一个时,我通常scp直接在终端上使用!
〜马特

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.