移动目录而不覆盖文件

时间:2014-09-12 14:02:12

标签: linux mv

在Linux中,我有一个文件夹,比如说ABC,在这个文件夹中我有子文件夹ABC

这些文件夹可以包含文件,例如文件夹A可以有,A1A2A3等。

我想将所有这些文件夹移到另一个文件夹A2Z

现在,这个新文件夹A2Z可能已经或可能没有文件夹ABC。我想移动不存在的文件夹,附加存在的文件夹的内容

2 个答案:

答案 0 :(得分:1)

使用交互式移动,确保在目的地中的类似文件/目录的情况下提示您

mv --interactive

或者,如果您不想移动目标目录中已存在的文件,那么以下内容应该可以为您执行此操作

for f in $(find /src/dir -type f); do target=/dest/dir/$(basename $f); if [[ ! -e $target ]]; then mkdir -p $(dirname $target);mv $f $target; fi; done

另一个选项是设置--no-clobber标志,如果您尝试通过输出重定向覆盖现有文件,则会引发错误

答案 1 :(得分:1)

根据我们姐妹网站this answerSuperUser结束,您可以

rsync -av --remove-source-files src/ dest/

请注意,我已经建议将此问题迁移到那里,所以这个问题和我的答案很快就会消失!