【问题标题】:rsync --delete-after issuesrsync --delete-after 问题
【发布时间】: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有什么关系?

标签: sync rsync


【解决方案1】:

--delete 不是这样做的。 --delete(及其变体,如--delete-after)不会从源a 中删除文件,它们会从目标b 中删除源中不存在的文件。您要查找的参数是--remove-source-files

试试rsync -av --remove-source-files /a/ /b/

【讨论】:

  • 谢谢。但这个选项只是删除文件。现在,如何删除带有文件的目录?
【解决方案2】:

如果您完全担心无意中删除了使用时未正确传输的目录(来自上一篇文章)

rm -rf /a/*

那么您可以使用更安全的方法通过“查找”删除空子目录。

rsync -av --remove-source-files /a/ /b/  && find /a/ -type d -empty -delete

【讨论】:

    【解决方案3】:

    试试这个:

    rsync -av --remove-source-files /a/ /b/ && rm -rf /a/*
    

    【讨论】:

    • 为什么要额外的 rm -rf?与没有此步骤的@StvnW 答案相比?这会清理空目录吗?
    • rm -rf 删除所有内容,包括空(非空)目录
    猜你喜欢
    • 2023-03-29
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2021-03-13
    • 2011-11-28
    • 1970-01-01
    相关资源
    最近更新 更多