質問

ShellコマンドではなくBash Codeで私を助けてくれますか、2つのフォルダーを同期するために、これは私がやろうとしたことです。このコードでD2ディレクトリをD2と同期する必要がありますが、このコードで最初のファイルを取得しますD1では、ファイルの残りの部分なしでD2でコピーされ、D2とD2と同期するためにこのコードを書き換える最良の方法は何ですか?ShellコマンドではなくBashコードでの問題を解決する必要があるので、コードを手伝って、問題を解決するように指示してください

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

正しい解決策はありません

他のヒント

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

試してみましょう、同期の意味を正確に明確にする必要があります。

2つの監督があるとしましょう

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

ここで、d#はディレクトリであり、f#はファイルです(そして、#はまだ1桁の数字を意味しますが、まだ把握していない場合は、mm/dd hh:mmのタイムスタンプをWhitです。

そのため、F4をD2にコピーし、F3をD1にコピーして(ここまで上書きなし)、D2/F1とD2/F2にD2/F1をコピー(および上書き)します。

次に、次のことをする必要があります。

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

さて、私が今までやっていたことは、それが私がそれに答えることができる方法であることを確認してください。したがって、それを読んでいる人がまだいる場合、解決策は次のように簡単です。

既存のファイルを2つの方向に更新します

cp -ur d1 d2
cp -ur d2 d1

それでおしまい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top