用scp从本地文件夹复制文件到远程文件夹,脚本抛出 "没有这样的文件或目录"

问题描述 投票:0回答:1

说明

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

#!/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。

我不知道这是否重要,但目前我使用的电脑是Linux Mint 19.3,xfce终端和zshell。

疑问

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

bash shell terminal scp
1个回答
2
投票

是shell扩展了通配符,但是当你运行 -e 在xfce4-terminal中,它不需要让shell解析就能运行命令。不过,你可以运行shell来运行这个命令。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.