فهم قيادة لينكس: Ar

يقوم برنامج GNU ar بإنشاء وتعديل واستخراج من الأرشيفات. الأرشيف هو ملف واحد يحتوي على مجموعة من الملفات الأخرى في بنية تجعل من الممكن استرداد الملفات الفردية الأصلية (تسمى أعضاء الأرشيف).

نظرة عامة

يتم حفظ محتويات الملفات الأصلية ، ووضع (الأذونات) ، والطابع الزمني ، والمالك ، والمجموعة في الأرشيف ، ويمكن استعادتها عند الاستخراج.

يمكن لغنو أر أن يحافظ على الأرشيفات التي يكون لأعضائها أسماء من أي طول ؛ ومع ذلك ، اعتماداً على كيفية تكوين ar على النظام الخاص بك ، قد يتم فرض حد على طول اسم العضو من أجل التوافق مع تنسيقات الأرشيف المحافظة على الأدوات الأخرى. إذا كان موجودًا ، فغالبًا ما يكون الحد 15 حرفًا (نموذجيًا من التنسيقات المتعلقة بـ a.out) أو 16 حرفًا (نموذجيًا من التنسيقات المتعلقة بـ coff).

تعتبر ar أداة مساعدة ثنائية لأن أرشيفات هذا النوع غالباً ما يتم استخدامها كمكتبات تقوم بوظائف فرعية مطلوبة بشكل شائع.

ar ينشئ فهرسًا للرموز المعرفة في وحدات الكائن القابلة للنقل في الأرشيف عند تحديد المُعدل s . بمجرد إنشائه ، يتم تحديث هذا الفهرس في الأرشيف عندما يقوم ar بإجراء تغيير على محتوياته (حفظ لعملية تحديث q ). يسرع الأرشيف الذي يحتوي على مثل هذا الفهرس إلى الارتباط بالمكتبة ، ويسمح للإجراءات في المكتبة بالاتصال ببعضها دون النظر إلى موضعها في الأرشيف.

يمكنك استخدام nm -s أو nm --print-armap لسرد جدول الفهرس هذا. إذا كان الأرشيف يفتقر إلى الجدول ، يمكن استخدام نموذج آخر من ar ar ranlib لإضافة الجدول فقط.

تم تصميم GNU ar بحيث يتوافق مع منشأتين مختلفتين. يمكنك التحكم في نشاطها باستخدام خيارات سطر الأوامر ، مثل الأنواع المختلفة من ar على أنظمة Unix ؛ أو ، إذا قمت بتحديد خيار سطر واحد للأحرف -M ، فيمكنك التحكم فيه باستخدام نص برمجي يتم توفيره من خلال الإدخال القياسي ، مثل برنامج MRI `'librarian' '.

موجز

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] archive [ member ...]

خيارات

GNU ar يسمح لك بخلط كود التشغيل p و modifier mod mod في أي ترتيب ، ضمن وسيطة سطر الأوامر الأولى.

إذا كنت ترغب في ذلك ، فيمكنك بدء أول وسيطة سطر أوامر باستخدام شرطة.

تعيّن keyletter p العملية التي يجب تنفيذها ؛ قد يكون أي مما يلي ، ولكن يجب عليك تحديد واحد منهم فقط:

د

حذف وحدات من الأرشيف. حدد أسماء الوحدات التي سيتم حذفها كعضو ...؛ لا يتم حفظ الأرشيف إذا لم تحدد أي ملفات لحذفها.

إذا قمت بتحديد v modifier ، فسوف يسجِّل ar كل وحدة نمطية عند حذفها.

م

استخدم هذه العملية لنقل الأعضاء في الأرشيف.

يمكن أن يؤدي ترتيب الأعضاء في الأرشيف إلى إحداث فرق في كيفية ربط البرامج باستخدام المكتبة ، إذا تم تعريف الرمز في أكثر من عضو واحد.

إذا لم يتم استخدام أي من الموديلات مع "m" ، فسيتم نقل أي أعضاء قمت بتسميةهم في وسائط العضو إلى نهاية الأرشيف. يمكنك استخدام a أو b أو i modifiers لنقلها إلى مكان محدد بدلاً من ذلك.

ص

اطبع الأعضاء المحددين في الأرشيف ، إلى ملف الإخراج القياسي. إذا تم تحديد معدّل v ، فقم بإظهار اسم العضو قبل نسخ محتوياته إلى الإخراج القياسي.

إذا لم تقم بتحديد وسيطات عضو ، فستتم طباعة جميع الملفات الموجودة في الأرشيف.

ف

ملحق سريع تاريخيا ، إضافة عضو الملفات ... إلى نهاية الأرشيف ، دون التحقق من الاستبدال.

المعدلات a و b و i لا تؤثر على هذه العملية ؛ يتم دائمًا وضع الأعضاء الجدد في نهاية الأرشيف.

يجعل المُعد الخامس v قائمة ar كل ملف كما يتم إلحاقه.

نظرًا لأن سرعة هذه العملية هي السرعة ، لا يتم تحديث فهرس جدول رمز الأرشيف ، حتى إذا كان موجودًا بالفعل ؛ يمكنك استخدام ar s أو ranlib بشكل صريح لتحديث فهرس جدول الرموز.

ومع ذلك ، فإن العديد من الأنظمة المختلفة تفترض أن التذييل السريع يعيد بناء الفهرس ، لذا فإن غنو يطبق "q" كمرادف لـ "r".

ص

أدخل عضو الملفات ... في الأرشيف (مع الاستبدال ). تختلف هذه العملية عن q في أنه يتم حذف أي أعضاء سابقين سابقًا إذا كانت أسماؤهم تتطابق مع تلك التي تتم إضافتها.

إذا كان أحد الملفات المسماة في عضو ... غير موجود ، يعرض ar رسالة خطأ ، ويترك دون عوائق أي أعضاء حاليين في الأرشيف يطابق هذا الاسم.

بشكل افتراضي ، يتم إضافة أعضاء جدد في نهاية الملف ؛ ولكن يجوز لك استخدام أحد المعدّلات a أو b أو i لطلب موضع متعلق ببعض الأعضاء الحاليين.

يقوم المُعدّل v المستخدم مع هذه العملية بإحداث خط إخراج لكل ملف تم إدخاله ، إلى جانب أحد الأحرف a أو r للإشارة إلى ما إذا كان الملف قد تم إلحاقه (لم يتم حذف أي عضو قديم) أو استبداله.

تي

عرض جدول يسرد محتويات الأرشيف ، أو تلك الملفات المدرجة في العضو ... الموجودة في الأرشيف. عادةً ما يظهر اسم العضو فقط ؛ إذا كنت تريد أيضًا مشاهدة الأوضاع (الأذونات) والطابع الزمني والمالك والمجموعة والحجم ، فيمكنك طلب ذلك من خلال تحديد معدّل v أيضًا.

إذا لم تقم بتحديد عضو ، فسيتم سرد كافة الملفات الموجودة في الأرشيف.

إذا كان هناك أكثر من ملف يحمل نفس الاسم (على سبيل المثال ، fie ) في أرشيف (على سبيل المثال ، ba ) ، يسرد ar t ba fie المثيل الأول فقط ؛ لرؤيتهم جميعا ، يجب أن تسأل عن قائمة كاملة --- في مثالنا ، ar t ba .

س

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

إذا لم تقم بتحديد عضو ، فسيتم استخراج جميع الملفات الموجودة في الأرشيف.

قد يتبع عدد من المُعدِّلات ( mod ) على الفور حرف p p ، لتحديد الاختلافات في سلوك العملية:

ا

إضافة ملفات جديدة بعد وجود عضو موجود في الأرشيف. إذا كنت تستخدم المُعدّل a ، فيجب أن يكون اسم أحد أعضاء الأرشيف الحالي موجودًا كوسيطة relpos ، قبل مواصفات الأرشيف .

ب

إضافة ملفات جديدة قبل عضو موجود في الأرشيف. إذا كنت تستخدم المُعدّل b ، فيجب أن يكون اسم أحد أعضاء الأرشيف الحالي موجودًا كوسيطة relpos ، قبل مواصفات الأرشيف . (نفس أنا ).

ج

قم بإنشاء الأرشيف. يتم دائمًا إنشاء الأرشيف المحدد إذا لم يكن موجودًا ، عند طلب تحديث. ولكن يتم إصدار تحذير ما لم تحدد مسبقًا أنك تتوقع إنشائه ، باستخدام هذا التعديل.

F

أسماء مقتطعة في الأرشيف. غنو ع عادة ما تسمح أسماء الملفات من أي طول. سيؤدي ذلك إلى إنشاء أرشيفات غير متوافقة مع برنامج ar الأصلي في بعض الأنظمة. إذا كان هذا مصدر قلق ، فقد يتم استخدام المعدل f لاقتطاع أسماء الملفات عند وضعها في الأرشيف.

أنا

أدخل ملفات جديدة قبل عضو موجود في الأرشيف. إذا كنت تستخدم المُعدّل i ، فيجب أن يكون اسم أحد أعضاء الأرشيف الحالي موجودًا كوسيطة relpos ، قبل مواصفات الأرشيف . (نفس ب ).

ل

تم قبول هذا المُعدِّل ولكن لم يتم استخدامه.

N

يستخدم معلمة العدد . يتم استخدام هذا في حالة وجود عدة إدخالات في الأرشيف بالاسم نفسه. استخراج أو حذف عدد مثيل من الاسم المعطى من الأرشيف.

س

الحفاظ على التواريخ الأصلية للأعضاء عند استخراجها. إذا لم تقم بتحديد هذا المعدل ، فإن الملفات المستخرجة من الأرشيف مختومة بوقت الاستخراج.

P

استخدم اسم المسار الكامل عند مطابقة الأسماء في الأرشيف. لا يمكن لـ GNU ar إنشاء أرشيف مع اسم مسار كامل (مثل هذه المحفوظات ليست شكوى POSIX) ، ولكن يمكن لمنشئي الأرشيف الآخرين ذلك. سيؤدي هذا الخيار إلى مطابقة GNU ar لأسماء الملفات باستخدام اسم المسار الكامل ، والذي يمكن أن يكون مناسبًا عند استخراج ملف واحد من أرشيف تم إنشاؤه بواسطة أداة أخرى.

الصورة

اكتب فهرس ملف كائن في الأرشيف ، أو قم بتحديث فهرس موجود ، حتى إذا لم يتم إجراء أي تغيير على الأرشيف. يجوز لك استخدام علامة التعديل هذه مع أي عملية ، أو بمفردها. تشغيل ar s في أرشيف يعادل تشغيل ranlib عليه.

S

لا تقم بإنشاء جدول رمز أرشيف. هذا يمكن تسريع بناء مكتبة كبيرة في عدة خطوات. لا يمكن استخدام الأرشيف الناتج مع رابط. من أجل بناء جدول الرموز ، يجب حذف معدّل S في آخر عملية تنفيذ ar ، أو يجب تشغيل ranlib على الأرشيف.

ش

عادة ، يقوم ar r ... بإدراج جميع الملفات المدرجة في الأرشيف. إذا كنت ترغب في إدراج فقط الملفات التي تدرجها والتي هي أحدث من الأعضاء الحاليين للأسماء نفسها ، استخدم هذا التعديل. يُسمح بالمعدل u فقط للعملية r (الاستبدال). على وجه الخصوص ، لا يُسمح باستخدام مجموعة المختار ، نظرًا لأن تفقد الطوابع الزمنية سيفقد أي ميزة للسرعة من العملية q .

الخامس

يطلب هذا المُعدّل إصدارًا مطولًا لعملية ما. تعرض العديد من العمليات معلومات إضافية ، مثل أسماء الملفات التي تمت معالجتها ، عندما يتم إلحاق المُعدل v .

الخامس

يعرض هذا المُعدّل رقم إصدار ar .

ar يتجاهل الخيار الأولي spelled -X32_64 ، للتوافق مع AIX. السلوك الذي ينتجه هذا الخيار هو السلوك الافتراضي لـ GNU ar . لا يدعم ar أي من خيارات -X الأخرى ؛ على وجه الخصوص ، فإنه لا يدعم -X32 وهو الافتراضي ل AR AIX.

هام: استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.