使用 scp 复制具有某些扩展名的文件

sod*_*ate 23 scp

我想复制.jpg.png文件scp,但在我从中复制的同一文件夹中存在具有不同扩展名的文件。我正在做以下事情:

scp user@someRemoteHost.com:/folder/*.{jpg,png} .
Run Code Online (Sandbox Code Playgroud)

我被要求为每种扩展类型输入密码。有没有办法让我只输入一次密码?

A.B*_*A.B 37

只需将其替换为:

scp user@someRemoteHost.com:'/folder/*.{jpg,png}' .
Run Code Online (Sandbox Code Playgroud)

请注意一对单引号。在您的情况下,您的本地 shell 正在评估表达式,将其真正转换为:

scp user@someRemoteHost.com:/folder/*.jpg user@someRemoteHost.com:/folder/*.png .
Run Code Online (Sandbox Code Playgroud)

因此询问了两个密码。在这个解决方案中,一对单引号保护它不被本地 shell 评估,所以它是由(远程)scp 调用的远程 shell 正在评估表达式。

  • 如何包含该目录的所有子目录? (2认同)

Pra*_* BS 12

最好使用 rsync 在服务器之间进行复制操作。

 rsync -avzh user@remoteip:/path/*.jpg user@192.168.159.155:/path/*.png localserverpath
Run Code Online (Sandbox Code Playgroud)

使用 rsync 它只会要求输入一次密码。

同样在 rsync 传输文件时,它会检查目标位置是否存在文件,并检查源位置和目标位置的内容是否相同。

如果文件也存在于目标位置并且内容也相同,则不会复制该文件。它只会复制目标位置不存在的文件,因此减少了处理时间。

rsync 通常用作增量备份工具。

  • 不管是使用`rsync`还是`scp`,重点是`/folder/*.{jpg,png}`应该引用`'/folder/*.{jpg,png}'`。 (11认同)