如果目标文件夹不存在,scp是否会创建目标文件夹

Ben*_*tte 32 linux bash scp

我想知道如果远程服务器上不存在scp将创建目标文件夹.例如,这会有用吗?

scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder
Run Code Online (Sandbox Code Playgroud)

这个文件夹/data/install/somefolder在ftp服务器上不存在,那么这个命令会创建吗?

NB我已阅读有关rsync的内容,但我不确定它是如何工作的或如何使用它.

Tha*_*wda 42

要使用ssh和scp(而不是rsync)来完成任务:

让我们分成两步:

1.如果缺少则创建目录:

ssh user@ftpserver.com "mkdir -p /data/install/somefolder"
Run Code Online (Sandbox Code Playgroud)

2.复制到它:

scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder
Run Code Online (Sandbox Code Playgroud)

把它们放在一起

server="user@ftpserver.com"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
Run Code Online (Sandbox Code Playgroud)


Jar*_*und 21

简答:不.

...但rsync确实如此,这就是为什么我rsync -Pravdtze ssh在我的盒子上有别名的scp .是的,这是很多开关,它们组合起来产生了我喜欢的rsync行为.由于rsync确实提供了一套非常广泛的开关和选项,我建议你做一些研究,看看哪种最适合你的需求.Manpage是一个很好的起点,但有很多信息很容易获得.这是一个很好的例子列表.

编辑:实际上,在您发布的特定情况下,将创建文件夹,因为这是您正在复制的文件夹.但是,如果您尝试将其复制到user@remotehost:somenonexistentfolder/somefolder,则会失败.

  • 断链.:( (3认同)