首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果一个目录不存在,scp可以创建它吗?

如果一个目录不存在,scp可以创建它吗?
EN

Unix & Linux用户
提问于 2015-03-30 13:06:30
回答 5查看 262.7K关注 0票数 166

我想使用scp上传文件,但有时目标目录可能不存在。

是否可以自动创建文件夹?如果是这样的话,是怎么做的?如果没有,我还能尝试什么替代方法呢?

EN

回答 5

Unix & Linux用户

发布于 2015-03-30 13:21:49

如果您正在复制一组文件,则不完全是。如果您正在复制一个目录及其下面的所有内容,是的。鉴于这一命令:

代码语言:javascript
复制
$ scp -pr /source/directory user@host:the/target/directory

如果directory不存在于~/the/target on host中,它将被创建。但是,如果~the/target不存在,您可能会遇到问题--我不记得这种情况的确切结果,但是要做好准备,使预期的scp失败。

票数 70
EN

Unix & Linux用户

发布于 2015-03-30 13:11:31

据我所知,scp本身无法做到这一点,不。但是,您可以只需ssh到目标机器,创建目录,然后复制。类似于:

代码语言:javascript
复制
ssh user@host "mkdir -p /target/path/" &&
    scp /path/to/source user@host:/target/path/

请注意,如果要复制整个目录,则不需要上述内容。例如,要将目录~/foo复制到远程主机,可以使用-r (递归)标志:

代码语言:javascript
复制
scp -r ~/foo/ user@host:~/

它将在远程主机上创建目标目录~/foo。但是,它不能创建父目录。除非目标目录scp ~/foo user@host:~/bar/foo存在,否则bar将失败。在任何情况下,如果要复制单个文件,-r标志将无助于创建目标目录。

票数 33
EN

Unix & Linux用户

发布于 2015-03-30 13:22:46

可以,停那儿吧。根据scp的手册页:

人类scp ..。-r递归地复制整个目录。注意,scp遵循在树遍历中遇到的sym bolic链接。……

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/193368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档