rsync -avzh /tmp/src /tmp/dst/
Comment synchroniser deux répertoires avec du code bash?
-
28-07-2022 - |
Question
Quelqu'un peut-il m'aider avec la commande de code bash non pas, pour faire synchroniser deux dossiers, c'est ce que j'ai essayé de faire, j'ai besoin de synchroniser le répertoire D1 avec D2 avec ce code, mais avec ce code, tout ce que j'obtiens le premier fichier en D1 à copier dans D2 sans le reste du fichier, et quelle serait la meilleure façon de réécrire ce code dans le fichier bash pour synchroniser D2 avec D1,J'ai besoin de résoudre mon problème avec le code bash non avec la commande shell, alors s'il vous plaît, aidez avec mon code et dirigez-moi pour résoudre mon problème
#! / bac / bash
di1=$(ls d1)
n=${#di1[@]}
for (( i = 1; i <$n+1 ; i++ )); do
t=$(find d2 -name ${di1[$i]})
if [[ $t = '' ]]; then
cp d1/${di1[$i]} d2
fi
done
Pas de solution correcte
Autres conseils
Permettez-moi d'essayer, nous devons clarifier exactement ce que signifie la synchronisation:
Disons que vous avez deux rédacteurs
d1
L f1 10/25 11:40
L f2 10/25 10:22
L f4 10/10 08:01
d2
L f1 10/25 10:11
L f2 10/26 09:56
L f3 10/24 11:37
Lorsque D # est un répertoire, et F # est un fichier (et # signifie n'importe quel numéro de chiffre, si vous ne l'avez pas encore compris), il en fait des horodatages en mm / dd hh: mm.
Donc, vous voulez faire copier F4 sur D2, F3 copié sur D1 (pas d'écriture avant ici), puis copiez (et écrasez) D2 / F1 avec D1 / F1 et D1 / F2 avec D2 / F2.
Ensuite, vous devriez vous retrouver avec:
d1
L f1 10/25 11:40
L f2 10/26 09:56
L f3 10/24 11:37
L f4 10/10 08:01
d2
L f1 10/25 11:40
L f2 10/26 09:56
L f3 10/24 11:37
L f4 10/10 08:01
Eh bien, tout ce que j'ai fait jusqu'à présent, c'était reformuler votre question pour être sûr que c'est d'une manière que je peux y répondre, donc s'il y a quelqu'un qui le lira encore, la solution pourrait être aussi simple que:
Mettez à jour les fichiers existants dans les deux directions
cp -ur d1 d2
cp -ur d2 d1
c'est ça.