可以帮助我使用bash代码而不是shell命令,要获得两个文件夹同步,这是我尝试做的,我需要将D1目录与D2与此代码同步,但是使用此代码,我将获得第一个文件在D1中,将在没有文件的其余部分中复制在D2中,以及在BASH文件中重写此代码以使D2与D1同步的最佳方法我需要用bash代码解决我的问题,而不是用shell命令解决我的问题,请帮助我的代码,并指示我解决我的问题

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

让我尝试,我们需要准确澄清同步的含义:

假设你有两个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

其中d#是目录,而f#是一个文件(#表示任何一个数字号码,如果您还没有弄清楚它),则在mm/dd hh:mm中使用他们的时间戳。

因此,您想将F4复制到D2,F3复制到D1(直到此处才覆盖),然后用D1/F1和D2/F2复制(和覆盖)D2/F1和D1/F2。

然后,您应该结束:

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

好吧,到目前为止,我所做的一切都是为了确保它以某种方式回答您的问题,因此,如果有人阅读它,解决方案可能很简单:

在两个方向上更新现有文件

cp -ur d1 d2
cp -ur d2 d1

而已。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top