【发布时间】:2013-11-01 17:23:14
【问题描述】:
在 OSX 10.9 机器上运行。在 bash 终端中,我试图将文件从 dir a 复制到 dir b,并在复制时从 dir a 中删除文件。
我正在使用以下命令:
rsync -av --delete -after /a/* /b
a 中的文件复制到b,但a 中的文件在传输后仍然存在。
【问题讨论】:
-
这个问题和python有什么关系?
在 OSX 10.9 机器上运行。在 bash 终端中,我试图将文件从 dir a 复制到 dir b,并在复制时从 dir a 中删除文件。
我正在使用以下命令:
rsync -av --delete -after /a/* /b
a 中的文件复制到b,但a 中的文件在传输后仍然存在。
【问题讨论】:
--delete 不是这样做的。 --delete(及其变体,如--delete-after)不会从源a 中删除文件,它们会从目标b 中删除源中不存在的文件。您要查找的参数是--remove-source-files。
试试rsync -av --remove-source-files /a/ /b/
【讨论】:
如果您完全担心无意中删除了使用时未正确传输的目录(来自上一篇文章)
rm -rf /a/*
那么您可以使用更安全的方法通过“查找”删除空子目录。
rsync -av --remove-source-files /a/ /b/ && find /a/ -type d -empty -delete
【讨论】:
试试这个:
rsync -av --remove-source-files /a/ /b/ && rm -rf /a/*
【讨论】: