Pregunta

¿Alguien puede ayudarme con el código BASH, no el comando de shell, para sincronizar dos carpetas? en D1 para copiarse en D2 sin el resto del archivo, y cuál sería la mejor manera de reescribir este código en el archivo bash para sincronizar D2 con D1,Necesito resolver mi problema con el código bash no con el comando shell, así que por favor, ayuda con mi código y dirídeme para resolver mi problema

#! /bin/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

No hay solución correcta

Otros consejos

rsync -avzh /tmp/src /tmp/dst/

Déjame intentarlo, necesitamos aclarar exactamente qué significa sincronización:

Digamos que tienes dos Dirs

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

Donde D# es un directorio, y F# es un archivo (y# significa cualquier número de dígito, si aún no lo descubrió), con las marcas de tiempo de suya en MM/DD HH: MM.

Por lo tanto, desea que F4 copie a D2, F3 copiado a D1 (sin sobrescribirse hasta aquí), luego copie (y sobrescribir) D2/F1 con D1/F1 y D1/F2 con D2/F2.

Entonces deberías terminar con:

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

Bueno, todo lo que he hecho hasta ahora fue reformular su pregunta para asegurarse de que sea de alguna manera que pueda responderlo, por lo que si hay alguien que lo lea todavía, la solución podría ser tan simple como:

Actualizar los archivos existentes en la dirección dos

cp -ur d1 d2
cp -ur d2 d1

eso es todo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top