Linux mv commandment étrange

Quelqu'un peut-il me dire pourquoi quand je tape:

mv -f ./tmp/members ./ 

Je reçois:

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

De plus, la façon correcte de déplacer ce directory?

En outre, il existe déjà un directory à ./members … Je souhaite écraser complètement ce directory, pas seulement append les nouveaux contenus.

 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 

Merci!

-Eric

Essayez ce qui suit:

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

Ensuite, supprimez ./tmp/members si vous ne souhaitez pas conserver une copy. mv ne «écrase pas».

L'utilisation de paths relatifs est une mauvaise habitude et sera quelque chose que vous regretterez facilement. Je recommand d'utiliser des paths complets chaque fois que cela est raisonnable.

Cela devrait fonctionner:

 mv -f ./tmp/members . 

Une autre réponse (bien que vous ayez déjà accepté une autre):

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

De cette façon, l'ancien directory est supprimé en arrière-plan et le nouveau directory est mis en place dans un ordre très court (les deux mouvements devraient être très rapides tant que vous êtes sur le même système de files)

Notez également que cette solution n'utilise pas de files temporaires sécurisés comme cela devrait l'être.