ذكري المظهر

كيفية استبعاد الملفات والدلائل مع رسينك

حذف الملفات والمجلدات الفارغة

حذف الملفات والمجلدات الفارغة

جدول المحتويات:

Anonim

Rsync هي أداة مساعدة سريعة ومتعددة الاستخدامات لسطر الأوامر تقوم بمزامنة الملفات والمجلدات بين موقعين عبر shell بعيد.

باستخدام Rsync ، يمكنك نسخ البيانات وإنشاء نسخ احتياطية تدريجية ونسخ الملفات بين الأنظمة. عند نسخ البيانات ، قد ترغب في استبعاد ملف أو أكثر من الأدلة أو الدلائل بناءً على الاسم أو الموقع.

في هذا البرنامج التعليمي ، سنعرض لك كيفية استبعاد الملفات والدلائل باستخدام rsync.

قبل ان تبدأ

يجب أن يكون لديك معرفة أساسية بكيفية عمل rsync.

في الأمثلة أدناه ، سنستخدم rsync مع الخيار -a . هذا يخبر rsync بمزامنة الدلائل بشكل متكرر ، ونقل الأجهزة الخاصة والكتلة والحفاظ على الروابط الرمزية وأوقات التعديل والمجموعة والملكية والأذونات.

عند استبعاد الملفات أو الدلائل ، تحتاج إلى استخدام مساراتها النسبية إلى الدليل المصدر.

هناك خياران لتحديد الملفات والدلائل التي تريد استبعادها:

  • من سطر الأوامر ، باستخدام --exclude استثناء. من ملف ، باستخدام الخيار --exclude-from .

استبعاد ملف معين

لاستبعاد ملف معين ، قم بتمرير المسار النسبي إلى الملف إلى خيار - --exclude .

في المثال التالي ، لن يتم نقل الملف src_directory/file.txt :

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

استبعاد دليل محدد

استبعاد دليل محدد هو نفسه استبعاد ملف ، ما عليك سوى تمرير المسار النسبي إلى الدليل إلى خيار - --exclude كما هو موضح أدناه:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

استبعاد ملفات أو دلائل متعددة

لاستبعاد ملفات أو أدلة متعددة ، حدد ببساطة خيارات متعددة - --exclude :

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/

إذا كان عدد الملفات و / أو الدلائل التي تريد استبعادها كبيرًا ، فبدلاً من استخدام خيارات --exclude المتعددة ، يمكنك تحديد الملفات والدلائل التي تريد استبعادها في ملف وتمرير الملف إلى --exclude-from اختيار.

يعمل الأمر أدناه تمامًا مثل الأمر أعلاه:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ استبعاد-file.txt

file1.txt dir1/* dir2

استبعد ملفات أو أدلة متعددة بناءً على نموذج

باستخدام rsync ، يمكنك أيضًا استبعاد الملفات والدلائل استنادًا إلى نقش يطابق اسم الملف أو الدليل.

على سبيل المثال ، لاستبعاد جميع ملفات .jpg التي ستقوم بتشغيلها:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

يعد استبعاد جميع الملفات والدلائل الأخرى أكثر صعوبة باستثناء تلك التي تطابق نمطًا معينًا. لنفترض أنك تريد استبعاد جميع الملفات والدلائل الأخرى باستثناء الملفات التي تنتهي بـ .jpg .

خيار واحد هو استخدام الأمر التالي:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

عند استخدام خيار التضمين / الاستبعاد المتعدد ، يتم تطبيق قاعدة المطابقة الأولى.

  • --include='*.jpg' - أولاً ، نحن بما في ذلك جميع ملفات .jpg . --include='*/' - بعد ذلك نقوم بتضمين جميع الدلائل داخل الدليل src_directory . بدون هذا rsync لن يؤدي إلا إلى نسخ ملفات *.jpg في دليل المستوى الأعلى. -m - يزيل الدلائل الفارغة.

هناك خيار آخر يتمثل في توجيه إخراج الأمر find إلى rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n - سيزيل src_directory/ من مسار الملف. --files-from=- - تتضمن فقط الملفات من الإدخال القياسي (الملفات التي تم تمريرها من الأمر find).

استنتاج

في هذا البرنامج التعليمي ، تعلمت كيفية استبعاد الملفات والدلائل عند نقل البيانات باستخدام Rsync. يوجد الكثير لمعرفة المزيد عن Rsync في صفحة دليل مستخدم Rsync.

محطة rsync