使用 mv 命令替换现有文件夹

使用 mv 命令替换现有文件夹

如果这个问题已经有人问过了,抱歉,我找不到任何东西……

假设我想用“newstuff”替换“oldstuff”。基本上就是重命名以进行替换。我尝试使用以下命令:

mv ~/newstuff ~/oldstuff

但这只会将文件夹“newstuff”移动到“oldstuff”文件夹中。

我该如何用“newstuff”替换“oldstuff”?

我正在运行 OS X 10.7。

答案1

如果~/oldstuff不存在,

mv ~/newstuff ~/oldstuff

将重命名newstuffoldstuff。如果存在,它将newstuff移入oldstuff

因此,要回答您的问题,首先删除~/oldstuff(或将其重命名为olderstuff,再次查看该问题以了解如何执行此操作),然后mv像您一样使用该命令。

答案2

另一个解决方案是使用 rsync。(请注意结尾的斜杠。它们很重要)。

这会将 newstuff 中的所有内容复制到 oldstuff 中。

rsync -av ~/newstuff/ ~/oldstuff

并且,下面的代码会将 newstuff 中的所有内容复制到 oldstuff 中,并删除 oldstuff 中不存在于 newstuff 中的任何内容。

rsync -av --delete ~/newstuff/ ~/oldstuff

请注意,这两个命令都不会对 ~/newstuff 中的文件产生任何影响。如果要删除它们,则必须rm单独执行该命令。

答案3

你至少有两个选择。

mv ~/newstuff/* ~/oldstuff
rmdir ~/newstuff
mv ~/oldstuff ~/newstuff

mv ~/oldstuff ~/ancientstuff
mv ~/newstuff ~/oldstuff

答案4

你可以试试:

mv -f folder1/* folder2 && rmdir folder1

将移动所有内容folder1,包括文件和目录folder2

-f:覆盖之前不提示,相当于--reply=yes

mv 手册页

相关内容