我想移动到父目录的子目录中有大量文件和目录。目标目录中已经有一些文件和目录需要覆盖。只存在于目标中的文件应该保持不变。我可以强迫mv
这样做吗?它 ( mv * ..
) 抱怨
mv: cannot move `xyz' to `../xyz': Directory not empty
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
从联机帮助页 rsync
--remove-source-files
这告诉 rsync 从发送方删除作为传输一部分并已在接收方成功复制的文件(即非目录)。
这是否意味着发送方的文件是传输的一部分或在接收方复制?
我也可以删除发送方的目录吗?
请注意,您应该只对静止的源文件使用此选项。
如果您使用它来将出现在特定目录中的文件移动到另一台主机,请确保将完成的文件重命名到源目录中,而不是直接写入其中,以便 rsync 无法传输文件还没有完全写完。
如果您不能先将文件写入不同的目录,则应使用命名习惯用法,让 rsync 避免传输尚未完成的文件(例如,在写入文件时将文件命名为“foo.new”,将其重命名为“ foo" 完成后,然后使用选项 --exclude='*.new' 进行 rsync 传输)。
从 3.1.0 开始,如果文件的大小或修改时间没有保持不变,rsync 将跳过发送方删除(并输出错误)。
谢谢。