Comment forcer l'écrasement des directorys non-vides en utilisant `mv`

Je veux déplacer (pas simplement copyr) un groupe de files / directorys vers un directory différent dont certains ont des conflits de noms avec des files / directorys dans le directory cible. Mon objective principal est de déplacer les files, donc je peux tolérer que le directory non vide soit écrasé.

J'utilise actuellement mv ... destination cependant, parfois je reçois

mv: ne peut pas déplacer `target 'vers / destination / target': directory non vide

J'ai essayé mv -f ... destination sans succès et puisque je veux que les files soient partis de leur location d'origine, rsync ne semble pas approprié.

En prime, existe-t-il une bonne solution pour préserver les files destinés à être écrasés d'une manière ou d'une autre en renommant?

Si vous utilisez mv --backup=numbered
(ou l'une des autres options pour le commutateur --backup ),
alors mv complétera la fusion et préservera les files destinés à être écrasés.

 #!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") SRC=/path/to/source DST=/path/to/destination for item in $SRC/*; do if [[ -f "$DST/$(basename "$item")" ]]; then newitem=$(basename $item)_old while [[ -f "$DST/$newitem" ]]; do newitem=${newitem}_old done mv "$DST/$(basename $item)" "$DST/$newitem" fi mv "$item" "$DST/$(basename $item)" done