在 OSX 10.9 机器上运行。在 bash 终端中,我试图将文件从 dir 复制a
到 dir ,并在复制文件时从 dir 中b
删除文件a
。
我正在使用以下命令:
rsync -av --delete -after /a/* /b
从a
copy over tob
的文件,但是传输后里面的文件a
还在。
不是--delete
这样。--delete
(及其变体,如--delete-after
)不会从源a
中删除文件,它们会从目标b
中删除源中不存在的文件。您正在寻找的论点是--remove-source-files
.
尝试rsync -av --remove-source-files /a/ /b/
尝试这个:
rsync -av --remove-source-files /a/ /b/ && rm -rf /a/*
如果您完全担心在使用时不小心删除了未正确传输的目录(来自上一篇文章)
rm -rf /a/*
那么您可以使用更安全的方法来删除带有“查找”的空子目录。
rsync -av --remove-source-files /a/ /b/ && find /a/ -type d -empty -delete