Answers:
只需将其替换为:
scp user@someRemoteHost.com:'/folder/*.{jpg,png}' .
请注意一对单引号。在您的情况下,您的本地shell正在评估表达式,实际上将其转换为:
scp user@someRemoteHost.com:/folder/*.jpg user@someRemoteHost.com:/folder/*.png .
因此,要求输入两个密码。在此解决方案中,一对单引号保护它免受本地外壳程序的评估,因此,(远程)scp调用的远程外壳程序正在评估表达式。
scp -r user@someRemoteHost.com:'/folder' .
做到这一点。否则,如果您仍然只想在这些子目录中复制png和jpg,则可能无法使用scp或sftp(除非sftp / lftp带有可能的自定义脚本),但需要运行类似ssh +一对tar的东西。然后,您必须提出自己的具体需求。
最好使用rsync在服务器之间进行复制操作。
rsync -avzh user@remoteip:/path/*.jpg user@192.168.159.155:/path/*.png localserverpath
使用rsync,它将仅要求输入一次密码。
同样在rsync中,在传输文件时,它将在目标位置检查文件是否存在,并且还将检查源位置和目标位置中的内容是否相同。
如果文件也位于目标位置,并且内容也相同,则不会复制该文件。它只会复制目标位置中不存在的文件,因此减少了处理时间。
rsync通常用作增量备份工具。
rsync
或者scp
,问题是,/folder/*.{jpg,png}
应该引用'/folder/*.{jpg,png}'
。