rsync -avzh /tmp/src /tmp/dst/
كيفية مزامنة اثنين من الدليل مع رمز bash؟
-
28-07-2022 - |
سؤال
هل يمكن لأي شخص أن يساعدني في أمر رمز bash وليس أمر shell ، للحصول على مزامنة مجلدين ، هذا ما حاولت القيام به ، أحتاج إلى مزامنة دليل D1 مع D2 مع هذا الرمز ، ولكن مع هذا الرمز ، أحصل على الملف الأول في D1 ليتم نسخه في D2 بدون بقية الملف ، وما هو أفضل طريقة لإعادة كتابة هذا الرمز في ملف Bash لمزامنة D2 مع D1 ،أحتاج إلى حل مشكلتي في رمز Bash Not مع أمر Shell ، لذا الرجاء المساعدة في الكود الخاص بي وتوجيهني لحل مشكلتي
#! /بن/باش
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
لا يوجد حل صحيح
نصائح أخرى
اسمحوا لي أن أحاول ، نحن بحاجة إلى توضيح بالضبط ما يعنيه المزامنة:
دعنا نقول أن لديك اثنين
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 (لا يتم الكتابة فوق حتى هنا) ، ثم نسخ (والكتابة فوق) D2/F1 مع D1/F1 و D1/F2 مع D2/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
هذا هو.