سؤال

هل يمكن لأي شخص أن يساعدني في أمر رمز 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

لا يوجد حل صحيح

نصائح أخرى

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

اسمحوا لي أن أحاول ، نحن بحاجة إلى توضيح بالضبط ما يعنيه المزامنة:

دعنا نقول أن لديك اثنين

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

هذا هو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top