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

Unix 将一个目录替换为另一个目录,unix,mv,rm,Unix,Mv,Rm,在unix中,如果我想用另一个文件(例如bar)替换一个文件(例如foo),我会调用 $ mv bar foo foo将消失,bar将取其名称 然而,如果我想用另一个目录替换一个目录(同样是,foo和bar),这是行不通的: $ mv bar foo 在这里,bar目录将被移动到foo目录中 要用foo替换bar,我知道我能做到 $ rm -r foo $ mv bar foo 但是,有没有一种方法可以通过一个命令来实现这一点呢?这就是mv的工作原理,当目标目录不存在时,它将执行移动/重命

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

$ mv bar foo
foo
将消失,
bar
将取其名称

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

$ mv bar foo
在这里,
bar
目录将被移动到
foo
目录中

要用
foo
替换
bar
,我知道我能做到

$ rm -r foo
$ mv bar foo

但是,有没有一种方法可以通过一个命令来实现这一点呢?

这就是mv的工作原理,当目标目录不存在时,它将执行移动/重命名,当目标目录存在时,它将把源目录移动到mv中。 如果确实需要经常这样做,并且希望简化此操作,可以使用alias,例如smth,如下所示:

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