linux mv命令怪异

谁能告诉我为什么当我input:

mv -f ./tmp/members ./ 

我得到:

 mv: cannot move `./tmp/members' to a subdirectory of itself, `./members' 

而且正确的方法来移动这个目录?

此外,已经有一个目录在./members …我想完全覆盖这个目录,而不是只是添加新的内容。

 Directory Structure: ./ ./members ./members/srno ./members/srno/expired ./members/1 ./members/1/active ./members/members ./members/members/srno ./members/members/srno/expired ./members/members/1 ./members/members/1/active ./members/members/57364 ./members/members/57364/expired ./members/members/11939 ./members/members/11939/expired ./members/members/123 ./members/members/123/expired ./members/members/73331 ./members/members/73331/expired ./members/members/88144 ./members/members/88144/expired ./members/members/25051 ./members/members/25051/expired ./members/57364 ./members/57364/expired ./members/11939 ./members/11939/expired ./members/123 ./members/123/expired ./members/73331 ./members/73331/expired ./members/88144 ./members/88144/expired ./members/remove ./members/25051 ./members/25051/expired ./index.html ./tmp ./tmp/members ./tmp/members/srno ./tmp/members/srno/expired ./tmp/members/1 ./tmp/members/1/active ./tmp/members/57364 ./tmp/members/57364/expired ./tmp/members/11939 ./tmp/members/11939/expired ./tmp/members/123 ./tmp/members/123/expired ./tmp/members/73331 ./tmp/members/73331/expired ./tmp/members/88144 ./tmp/members/88144/expired ./tmp/members/25051 ./tmp/members/25051/expired ./tmp/subscribers.xml ./premium.cgi 

谢谢!

-Eric

尝试以下操作:

cp -rf ./tmp/members/* ./

之后,如果您不想保留副本,请删除./tmp/membersmv不会“覆盖”。

使用相对path是一个坏习惯,将是你会很容易后悔的东西。 我build议每当合理时使用完整path。

这应该工作:

 mv -f ./tmp/members . 

另一个答案(尽pipe你已经接受另一个答案):

 mv ./members ./.trash-members ; mv ./tmp/members ./ ; rm -rf ./.trash-members & 

这样旧的目录就会在后台被删除,新的目录就会以很短的顺序被放置(只要你在同一个文件系统中,这两个步骤应该是非常快的)

另外请注意,这个解决scheme并不使用安全的临时文件。