使用 scp 和脚本将文件从本地复制到远程文件夹 "No such file or directory"

Copy files from a local to remote folder with scp and script throws "No such file or directory"

描述

我想使用 scp 将所有以 .jpg 结尾的文件从我的本地机器复制到远程机器。 为此我有一个小 "script"。它看起来像这样:

#!/bin/bash


xfce4-terminal -e "scp -r -v /path/to/local/folder/*.jpg <user>@<IP>:/var/path/to/remote/folder/" --hold

问题

当我打开终端并输入 scp -r -v /path/to/local/folder/*.jpg <user>@<IP>:/var/path/to/remote/directory/ 时,它起作用了。 所以 SSH 工作正常。

当我启动脚本时它没有。 当我复制整个本地文件夹时,该脚本有效。然后看起来像这样(只是删除了 *.jpg):

#!/bin/bash

xfce4-terminal -e "scp -r -v /path/to/local/folder/ <user>@<IP>:/var/path/to/remote/folder/" --hold

但是我在远程文件夹中有本地文件夹,我只想要文件。

我不知道,这是否重要,但目前我使用的计算机装有 Linux Mint 19.3、xfce 终端和 zshell。

问题

那么我如何 运行 正确地将文件从本地文件夹复制到远程文件夹的脚本?

扩展通配符的是 shell,但是当你在 xfce4-terminal 中 运行 -e 时,它 运行s 命令没有让 shell 解析它。您可以 运行 一个 shell 到 运行 命令,但是:

xfce4-terminal -e "bash -c 'scp -r -v /path/to/local/folder/*.jpg user@ip:/var/path/to/remote'" --hold

您确定需要-r吗?目录通常不命名为 .jpg.