cpio

cpio هو برنامج عام لأرشفة الملفات، وهو تنسيق الملفات المرتبط به . يُثبّت بشكل أساسي على أنظمة تشغيل الحواسيب الشبيهة بنظام يونكس . صُمّم هذا البرنامج في الأصل كبرنامج لأرشفة الملفات على أشرطة التخزين كجزء من بيئة عمل المبرمج ( PWB/UNIX )، وأصبح مكونًا أساسيًا في جميع أنظمة يونكس التي صدرت بعد ذلك. اسمه مشتق من عبارة " نسخ إلى وإخراج" ، وهو وصف دقيق لاستخدام البرنامج للمدخلات والمخرجات القياسية في عمله.

تدعم جميع إصدارات يونكس برامج النسخ الاحتياطي والأرشفة الأخرى، مثل tar ، الذي أصبح أكثر شيوعًا. [ 1 ] إن استخدام cpio من قِبل مدير حزم RPM ، وفي initramfs لنواة لينكس منذ الإصدار 2.6، وفي برنامج التثبيت الخاص بشركة أبل ( pax )، يجعل من cpio أداة أرشفة مهمة.

منذ تصميمها الأصلي، خضعت مكتبة cpio وتنسيق ملفاتها الأرشيفية لعدة مراجعات، بعضها غير متوافق. وأبرزها التغيير، الذي أصبح الآن خيارًا تشغيليًا، من استخدام تنسيق ثنائي لبيانات تعريف الملفات الأرشيفية إلى تمثيل قائم على ASCII .

تمت إزالة cpio من POSIX.1-2001 لصالح pax ، [ 2 ] وهي أداة مساعدة مماثلة تم تقديمها في الإصدار السابق من المعيار.

تاريخ

ظهرت وظيفة cpio في الإصدار 7 من نظام يونكس كجزء من مشروع Programmer's Workbench . [ 3 ]

تنسيق التشغيل والأرشفة

صُمم برنامج cpio في الأصل لتخزين ملفات النسخ الاحتياطية على شريط تخزين بطريقة متسلسلة ومتصلة. وهو لا يضغط أي محتوى، ولكن غالبًا ما تُضغط الملفات الناتجة باستخدام gzip أو برامج ضغط خارجية أخرى.

إنشاء الأرشيف

عند إنشاء الأرشيفات أثناء عملية النسخ ، التي تبدأ باستخدام خيار سطر الأوامر -o ، يقرأ برنامج cpio أسماء مسارات الملفات والمجلدات من قناة الإدخال القياسية الخاصة به، ويكتب دفق بايتات الأرشيف الناتج إلى قناة الإخراج القياسية. ولذلك، يُستخدم cpio عادةً مع أدوات أخرى تُنشئ قائمة الملفات المراد أرشفتها، مثل برنامج البحث (find ).

يُعدّ أرشيف cpio الناتج سلسلة من الملفات والمجلدات المدمجة في أرشيف واحد، مفصولة بأقسام رأسية تحتوي على معلومات تعريفية للملفات، مثل اسم الملف، ورقم inode، والملكية، والأذونات، والطوابع الزمنية. ويُطلق على اسم ملف الأرشيف عادةً الامتداد cpio .

يستخدم هذا المثال أداة البحث لإنشاء قائمة بأسماء المسارات بدءًا من الدليل الحالي لإنشاء أرشيف لشجرة الدليل:

$ find . -depth -print | cpio -o > /path/archive.cpio 

اِستِخلاص

أثناء عملية النسخ ، التي يتم بدءها بواسطة علامة سطر الأوامر i ، يقوم cpio بقراءة أرشيف من مدخلاته القياسية وإعادة إنشاء الملفات المؤرشفة في نظام ملفات نظام التشغيل.

$ cpio -i -vd < archive.cpio 

يُخبر الخيار d في سطر الأوامر برنامج cpio بإنشاء الدلائل حسب الحاجة. أما الخيار v ( verbose ) فيُدرج أسماء الملفات أثناء استخراجها.

أي وسائط سطر أوامر متبقية بخلاف علامات الخيارات تُعامل كأنماط مطابقة لأنماط الصدفة ؛ حيث تُنسخ فقط الملفات الموجودة في الأرشيف والتي تحمل أسماءً مطابقة من الأرشيف. المثال التالي يستخرج الملف /etc/fstab من الأرشيف:

$ cpio -i -d /etc/fstab < archive.cpio 

قائمة

يمكن سرد الملفات الموجودة في أرشيف cpio باستخدام هذا الاستدعاء:

$ cpio -t < archive.cpio 

قد تكون القائمة مفيدة لأن أرشيف cpio قد يحتوي على مسارات مطلقة بدلاً من المسارات النسبية (على سبيل المثال، /bin/ls مقابل bin/ls ).

ينسخ

يدعم برنامج cpio نوعًا ثالثًا من العمليات لنسخ الملفات . يتم تفعيل هذه العملية باستخدام خيار التمرير المباشر ( p ). يجمع هذا الوضع بين خطوتي النسخ الخارجي والداخلي دون إنشاء أي أرشيف فعلي للملفات. في هذا الوضع، يقرأ cpio أسماء المسارات من المدخلات القياسية كما في عملية النسخ الخارجي ، ولكن بدلًا من إنشاء أرشيف، يعيد إنشاء الدلائل والملفات في موقع مختلف ضمن نظام الملفات، وفقًا للمسار المحدد كوسيط في سطر الأوامر.

ينسخ هذا المثال شجرة الدليل بدءًا من الدليل الحالي إلى مسار آخر new-path في نظام الملفات، مع الحفاظ على أوقات تعديل الملفات (العلامة m )، وإنشاء الدلائل حسب الحاجة ( d )، واستبدال أي ملفات موجودة دون قيد أو شرط ( u )، مع إنتاج قائمة بالتقدم على الإخراج القياسي ( v ):

$ find . -depth -print | cpio -p -dumv new-path 

معيار POSIX

تم توحيد أداة cpio في معيار POSIX 1-1988 ، ولكنها حُذفت من معيار POSIX 1-2001 بسبب حجم ملفها وقيود أخرى. على سبيل المثال، يوفر إصدار GNU خيارات متعددة لتنسيق الإخراج، مثل "bin" (الافتراضي، وهو تنسيق قديم) و"ustar" (POSIX tar)، حيث يبلغ حجم الملف 2,147,483,647 بايت (2 جيجابايت) و8,589,934,591 بايت (8 جيجابايت) على التوالي. [ 4 ]

تم تعريف تنسيقات الملفات cpio و ustar و pax بواسطة POSIX.1-2001 لأداة pax ، وهي متوافقة حاليًا مع POSIX 1003.1-2008 ، وبالتالي يمكنها قراءة وكتابة الأرشيفات المنسقة cpio و ustar.

التطبيقات

توفر معظم توزيعات لينكس إصدار جنو من cpio. [ 5 ] يستخدم كل من FreeBSD و macOS الإصدار المرخص بموجب ترخيص BSD bsdcpioوالمرفق مع libarchive . [ 6 ]

انظر أيضاً

مراجع

  1. بيك، ج؛ أورايلي، ت؛ لوكيدس، م (1997). أدوات يونكس القوية . أورايلي وشركاؤه، ص  38.13. ISBN 1-565-92260-3.
  2. "الأساس المنطقي" . pubs.opengroup.org . تم الاطلاع عليه بتاريخ 18-07-2024 .
  3. ماكيلروي، دكتور في الطب (1987). قارئ أبحاث يونكس: مقتطفات مشروحة من دليل المبرمج، 1971-1986 (ملف PDF) (تقرير فني). مختبرات بيل. 139.
  4. وثيقة معلومات cpio ، في عقدة الخيارات ، صفحة دليل bsdcpio
  5. "Cpio" . GNU.org.
  6. "libarchive" .