我想使用scp上传文件,但有时目标目录可能不存在。
是否可以自动创建文件夹?如果是这样的话,是怎么做的?如果没有,我还能尝试什么替代方法呢?
发布于 2015-03-30 13:21:49
如果您正在复制一组文件,则不完全是。如果您正在复制一个目录及其下面的所有内容,是的。鉴于这一命令:
$ scp -pr /source/directory user@host:the/target/directory如果directory不存在于~/the/target on host中,它将被创建。但是,如果~the/target不存在,您可能会遇到问题--我不记得这种情况的确切结果,但是要做好准备,使预期的scp失败。
发布于 2015-03-30 13:11:31
据我所知,scp本身无法做到这一点,不。但是,您可以只需ssh到目标机器,创建目录,然后复制。类似于:
ssh user@host "mkdir -p /target/path/" &&
scp /path/to/source user@host:/target/path/请注意,如果要复制整个目录,则不需要上述内容。例如,要将目录~/foo复制到远程主机,可以使用-r (递归)标志:
scp -r ~/foo/ user@host:~/它将在远程主机上创建目标目录~/foo。但是,它不能创建父目录。除非目标目录scp ~/foo user@host:~/bar/foo存在,否则bar将失败。在任何情况下,如果要复制单个文件,-r标志将无助于创建目标目录。
发布于 2015-03-30 13:22:46
可以,停那儿吧。根据scp的手册页:
人类scp ..。-r递归地复制整个目录。注意,scp遵循在树遍历中遇到的sym bolic链接。……
https://unix.stackexchange.com/questions/193368
复制相似问题