将一个目录替换为另一个目录

Replace one directory with another

unix中,如果我想用另一个文件(例如bar)替换一个文件(例如foo),我会调用

$ mv bar foo

foo 会消失,bar 会取名。

然而,如果我想用另一个目录替换一个目录(同样,foobar),这是行不通的:

$ mv bar foo

此处,bar 目录将移动到 foo 目录中。

foo替换bar,我知道我可以做到

$ rm -r foo
$ mv bar foo

但是有没有一种方法可以通过一条命令完成此操作?

这就是 mv 的工作原理,当目标目录不存在时 - 它会执行 move/rename,当存在时 - 会将源目录移动到其中。 如果你真的需要经常这样做并且想简化它,你可以使用别名,例如像这样的smth:

rmandmv() {
    rm -r 
    mv  
}
alias rmmv=rmandmv