用 mv 命令替换现有文件夹

Jac*_*ood 19 mac bash mv macos

如果已经问过这个问题,我很抱歉,我找不到任何东西......

假设我想用“newstuff”替换“oldstuff”。基本上是重命名来替换。我尝试使用这个命令:

mv ~/newstuff ~/oldstuff
Run Code Online (Sandbox Code Playgroud)

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

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

我正在运行 OS X 10.7。

Ken*_*ent 15

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

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

rsync -av ~/newstuff/ ~/oldstuff
Run Code Online (Sandbox Code Playgroud)

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

rsync -av --delete ~/newstuff/ ~/oldstuff
Run Code Online (Sandbox Code Playgroud)

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

  • 这应该是公认的答案。 (2认同)

cho*_*oba 10

如果~/oldstuff不存在,

mv ~/newstuff ~/oldstuff
Run Code Online (Sandbox Code Playgroud)

将重命名newstuffoldstuff. 如果存在,它将移动newstuffoldstuff.

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

  • 但旧东西确实存在。这就是问题所在,是否可以在不先发出删除命令的情况下执行此操作? (3认同)