rsync -avzh /tmp/src /tmp/dst/
题
可以帮助我使用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
没有正确的解决方案
其他提示
让我尝试,我们需要准确澄清同步的含义:
假设你有两个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
而已。
不隶属于 StackOverflow