Pergunta

Qualquer um pode me ajudar com o comando Bash Code não Shell, para obter duas pastas sincronizadas, isso o que eu tentei fazer, preciso sincronizar o diretório D1 com D2 com este código, mas com este código tudo estou recebendo o primeiro arquivo Em D1, a ser copiado em D2 sem o restante do arquivo e qual seria a melhor maneira de reescrever esse código no arquivo bash para sincronizar D2 com D1,Preciso resolver meu problema com o código da Bash não com o comando Shell, então, por favor, ajude com meu código e me direcione para resolver meu 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

Nenhuma solução correta

Outras dicas

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

Deixe -me tentar, precisamos esclarecer exatamente o que significa sincronização:

Digamos que você tenha dois diretores

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

Onde D# é um diretório e F# é um arquivo (e# significa qualquer número de dígitos, se você ainda não o descobriu), Whit deles, os timestamps em MM/DD HH: MM.

Então você quer ter F4 copiado para D2, F3 copiado para D1 (sem substituição até aqui), depois copie (e substitua) D2/F1 com D1/F1 e D1/F2 com D2/F2.

Então você deve acabar com:

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

Bem, tudo o que fiz até agora, foi reformular sua pergunta para ter certeza de que, de certa forma, posso responder, por isso, se houver alguém lendo -a ainda, a solução pode ser tão simples quanto:

Atualize os arquivos existentes nas duas direção

cp -ur d1 d2
cp -ur d2 d1

é isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top