【发布时间】:2023-10-26 05:23:02
【问题描述】:
我正在编写一个 python 脚本,它监视一个目录并上传使用 scp 创建或修改的文件。没关系,除了我希望递归完成,如果用户在监视目录中创建目录,然后修改该新目录中的文件,我会遇到问题。
我可以很好地检测到目录创建和文件嵌套文件创建/修改。但是如果我尝试将该文件上传到远程服务器,它将无法正常工作,因为远程站点上的目录将不存在。有没有一种简单的方法可以在不递归复制创建的目录的情况下做到这一点?我想避免这种情况,因为如果远程文件夹存在,我不想删除它。
另外,请不要推荐rsync。它只能使用 ssh 和 scp。
【问题讨论】:
-
你试过
-r修饰符吗? (-r表示“递归执行此复制”并根据需要构建文件夹) -
为什么不能使用rsync?只是你不喜欢吗?你有真正的理由不使用它吗?如果是这样,原因是什么?当您问“我如何做 A?请不要推荐工具 B”和“我如何做 A?”的通常回答时。是“使用工具 B”而你没有说为什么你不能使用工具 B,它往往会以错误的方式惹恼人们。另外,如果您告诉我们为什么不能使用它,这将有助于我们想出更好的答案。
-
首先我不喜欢 rsync,但这不是我说我不想使用它的原因。我发现 rsync 非常慢,对于我正在执行的传输类型而言,它比 scp 慢得多。此外, rsync 甚至不能解决我的问题。我正在尝试手动执行此操作,因此我没有 rsync 差异计算的开销。我不希望它每次更新文件时都必须计算整个差异树。