我想知道如果远程服务器上不存在scp,scp是否会创建目标文件夹。例如,这会有用吗?
scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder
这里ftp服务器上不存在文件夹/data/install/somefolder
,所以这个命令会创建吗?
N.B。我已阅读有关rsync的内容,但我不确定它是如何工作的或如何使用它。
答案 0 :(得分:40)
使用ssh和scp(而不是rsync)完成任务:
让我们分成两步:
ssh user@ftpserver.com 'mkdir -p /data/install/somefolder'
scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder
server="user@ftpserver.com"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
答案 1 :(得分:21)
简答:不。
...但rsync确实如此,这就是为什么我在我的盒子上将scp别名为rsync -Pravdtze ssh
。是的,这是很多开关,它们组合起来产生了我喜欢的rsync行为。由于rsync确实提供了一套非常广泛的开关和选项,我建议你做一些研究,看看哪种最适合你的需求。 Manpage是一个很好的起点,但有很多信息很容易获得。这是一个decent list of examples。
编辑:实际上,在您发布的特定情况下,将创建该文件夹,因为这是您要复制的文件夹。但是,如果您尝试将其复制到user@remotehost:somenonexistentfolder/somefolder
,则会失败。