如何使用`mv`强制覆盖非空目录

use*_*038 19 rsync rename files

我想将一组文件/目录移动(不仅仅是复制)到不同的目录,其中一些与目标目录中的文件/目录有名称冲突。我的主要目标是移动文件,所以我可以容忍非空目录被覆盖。

mv ... destination然而,我目前正在使用,偶尔我会得到

mv:无法将“目标”移动到 /destination/target':目录不为空

我尝试mv -f ... destination没有成功,因为我希望文件从它们的原始位置消失,rsync这似乎不合适。

作为奖励,是否有一个很好的解决方案来保留打算通过重命名以某种方式覆盖的文件?

bsd*_*bsd 21

如果你使用mv --backup=numbered
(或为其他选项--backup开关),
然后mv将完成合并,并保留这些文件旨在覆盖。