使用fabric.operations.put()创建远程目录

时间:2014-07-25 02:08:00

标签: python sftp fabric

我需要将一些文件放到远程sftp服务器上,创建一个新目录来放入它们。有没有办法使用fabric做到这一点? Fabric.operations.put()看起来不像在远程端创建新目录。

1 个答案:

答案 0 :(得分:4)

在致电put()之前运行mkdir

run('mkdir -p /path/to/dir/')

put('/local/path/to/myfile', '/path/to/dir/')

-p flag处理创建嵌套目录,请参阅:

  

-p, - 父母

     

如果存在则没有错误,根据需要创建父目录


更新(仅限sftp访问)。

使用SFTP.mkdir()

from contextlib import closing
from fabric.sftp import SFTP

ftp = SFTP(env.host_string)
with closing(ftp) as ftp:
    ftp.mkdir('/path/to/dir/', use_sudo=False)

put('/local/path/to/myfile', '/path/to/dir/')