AR(1) GNU Development Tools AR(1)

ar - ایجاد، تغییر و استخراج از پرونده‌های بایگانی

ar [-X32_64]
[-]p[mod]
[--plugin name]
[--target bfdname]
[--output dirname]
[--record-libdeps libdeps]
[--thin]
[relpos] [count] archive [member...] ar -M [< mri-script]

برنامه GNU ar وظیفه ایجاد، تغییر و استخراج از پرونده‌های بایگانی (archive) را بر عهده دارد. یک archive پرونده‌ای واحد است که مجموعه‌ای از پرونده‌های دیگر را در ساختاری نگهداری می‌کند که امکان بازیابی پرونده‌های اصلی (که members یا اعضای بایگانی نامیده می‌شوند) وجود داشته باشد.

محتوای پرونده‌های اصلی، حالت (دسترسی‌ها)، برچسب زمانی، مالک و گروه در بایگانی حفظ می‌شوند و هنگام استخراج قابل بازیابی هستند.

ابزار GNU ar می‌تواند بایگانی‌هایی با نام اعضای با هر طولی را مدیریت کند؛ با این حال، بسته به نحوه پیکربندی ar در سیستم شما، ممکن است برای سازگاری با قالب‌های بایگانی ایجادشده توسط ابزارهای دیگر، محدودیتی برای طول نام اعضا اعمال شود (معمولاً ۱۵ یا ۱۶ نویسه).

ابزار ar یک ابزار باینری به شمار می‌رود، زیرا این بایگانی‌ها اغلب به عنوان کتابخانه جهت نگهداری روال‌های مشترک استفاده می‌شوند. از آنجا که کتابخانه‌ها اغلب به کتابخانه‌های دیگر وابسته هستند، ar همچنین می‌تواند وابستگی‌های یک کتابخانه را در صورت مشخص شدن گزینه --record-libdeps ذخیره کند.

دستور ar در صورت مشخص شدن اصلاح‌کننده s، یک نمایه (index) از نمادهای تعریف‌شده در پودمان‌های شیء بازآرایی‌پذیر بایگانی می‌سازد. این نمایه با تغییر محتوای بایگانی توسط ar به‌روزرسانی می‌شود (به جز عملیات q). وجود این نمایه سرعت پیوند دادن کتابخانه را افزایش می‌دهد.

می‌توانید از nm -s یا nm --print-armap برای فهرست کردن جدول نمایه استفاده کنید. اگر بایگانی فاقد جدول باشد، می‌توان از ابزار ranlib برای اضافه کردن آن استفاده کرد.

ابزار GNU ar به صورت اختیاری می‌تواند بایگانی «نازک» (thin) ایجاد کند که حاوی نمایه نمادها و ارجاع به نسخه‌های اصلی پرونده‌های عضو است. این قابلیت برای ساخت کتابخانه‌ها درون یک درخت ساخت محلی مفید است.

یک بایگانی می‌تواند یا thin باشد یا عادی، و نمی‌تواند هر دو حالت را هم‌زمان داشته باشد. پس از ایجاد بایگانی، تغییر قالب آن تنها با حذف و ایجاد مجدد امکان‌پذیر است.

بایگانی‌های نازک همچنین مسطح (flattened) هستند؛ بنابراین افزودن یک بایگانی نازک به بایگانی نازک دیگر باعث تو در تو شدن آن نمی‌شود و عناصر به صورت مجزا اضافه می‌شوند.

مسیرهای عناصر بایگانی به صورت نسبی نسبت به خود بایگانی ذخیره می‌شوند.

دستور GNU ar طوری طراحی شده است که با دو شیوه مختلف سازگار باشد: با گزینه‌های خط فرمان همانند نسخه‌های مختلف ar در یونیکس؛ یا در صورت تعیین گزینه -M، با استفاده از یک اسکریپت ورودی استاندارد مانند برنامه کتابدار MRI.

ابزار GNU ar اجازه می‌دهد کد عملیات p و پرچم‌های اصلاح‌کننده mod را با هر ترتیبی درون اولین آرگومان خط فرمان ترکیب کنید.

در صورت تمایل می‌توانید آرگومان اول را با خط تیره آغاز کنید.

نویسه p نوع عملیات اجرایی را مشخص می‌کند؛ باید دقیقاً یکی از موارد زیر باشد:

حذف پودمان‌ها از بایگانی. نام‌های پودمان‌ها برای حذف با member... مشخص می‌شوند؛ در صورت عدم تعیین پرونده، بایگانی دست‌نخورده می‌ماند.

در صورت مشخص کردن اصلاح‌کننده v، پودمان‌های حذف‌شده فهرست می‌شوند.

جابجایی اعضا در بایگانی. ترتیب قرارگیری اعضا می‌تواند در نحوه پیوند برنامه‌ها اثرگذار باشد.

اگر هیچ اصلاح‌کننده‌ای استفاده نشود، اعضا به انتهای بایگانی منتقل می‌شوند؛ می‌توانید از a، b یا i برای تعیین مکان استفاده کنید.

چاپ اعضای مشخص‌شده در خروجی استاندارد. در صورت استفاده از اصلاح‌کننده v، نام عضو قبل از چاپ محتوا نمایش داده می‌شود. اگر عضوی تعیین نشود، همه پرونده‌ها چاپ می‌شوند.
الحاق سریع؛ افزودن پرونده‌های member... به انتهای بایگانی بدون بررسی جایگزینی.

اصلاح‌کننده‌های a، b و i روی این عملیات اثر ندارند.

اصلاح‌کننده v باعث می‌شود پرونده‌ها حین الحاق فهرست شوند.

ابزار GNU ar حتی در الحاق سریع نیز جدول نمادها را بازسازی می‌کند.

دستور qs مترادف r در نظر گرفته می‌شود.

درج پرونده‌های member... در بایگانی (همراه با جایگزینی). در صورت وجود نام‌های مشابه، اعضای قبلی حذف می‌شوند.

به طور پیش‌فرض پرونده‌ها به انتها اضافه می‌شوند مگر با اصلاح‌کننده‌های a، b یا i محل دیگری تعیین شود.

افزودن یا به‌روزرسانی نمایه بایگانی. این گزینه می‌تواند هم به عنوان دستور و هم به عنوان اصلاح‌کننده به کار رود.
نمایش جدول محتویات بایگانی. اگر عضوی مشخص نشود، تمامی پرونده‌ها فهرست می‌شوند. استفاده از O آفست و استفاده از v جزئیات کامل دسترسی و مالکیت را نشان می‌دهد.
استخراج اعضا از بایگانی. در صورت تعیین نشدن عضو، تمام پرونده‌ها استخراج می‌شوند. از بایگانی نازک نمی‌توان استخراج انجام داد.

مجموعه‌ای از اصلاح‌کننده‌ها (mod) می‌توانند بلافاصله پس از حرف عملیات p قرار گیرند:

افزودن پرونده‌ها بعد از یک عضو موجود در بایگانی (تعیین با relpos).
افزودن پرونده‌ها قبل از یک عضو موجود در بایگانی (همانند i).
ایجاد بایگانی بدون نمایش هشدار در صورت عدم وجود قبلی.
اجرا در حالت قطعیت‌گرا (deterministic). هنگام افزودن پرونده‌ها، مقادیر صفر برای UID، GID، برچسب‌های زمانی و دسترسی‌های یکسان اعمال می‌شود تا خروجی‌های همسان در اجراهای مکرر حاصل شود.
کوتاه‌سازی نام‌ها در بایگانی برای سازگاری با سیستم‌های قدیمی.
درج پرونده‌های جدید قبل از یک عضو موجود در بایگانی (همانند b).
تعیین وابستگی‌های کتابخانه.
استفاده از پارامتر count برای استخراج یا حذف n-امین نمونه از نام‌های تکراری.
حفظ تاریخ اصلی پرونده‌ها هنگام استخراج.
نمایش آفست اعضا درون بایگانی همراه با گزینه t.
استفاده از مسیر کامل نام‌ها در بایگانی.
نوشتن یا به‌روزرسانی نمایه پرونده‌های شیء در بایگانی (معادل اجرای ranlib).
عدم تولید جدول نمادها جهت افزایش سرعت ساخت کتابخانه‌های حجیم.
نام مستعار منسوخ‌شده برای --thin.
درج تنها پرونده‌هایی که جدیدتر از اعضای هم‌نام موجود هستند (تنها برای عملیات r).
عدم اجرا در حالت قطعیت‌گرا (استفاده از مقادیر واقعی زمان و مالکیت).
نمایش خروجی با جزئیات کامل (حالت پرگویی).
نمایش شماره نگارش ar.

گزینه‌های عمومی خط فرمان:

نمایش راهنمای گزینه‌ها و خروج.
نمایش اطلاعات نگارش و خروج.
جهت سازگاری با AIX نادیده گرفته می‌شود.
بارگذاری افزونه مشخص‌شده جهت پشتیبانی از قالب‌های پرونده بیشتر از جمله LTO.
تعیین قالب کد شیء هدف متفاوت با پیش‌فرض سیستم.
مشخص کردن شاخه خروجی برای استخراج اعضا.
ثبت وابستگی‌های کتابخانه (فرم بلند گزینه l).
تبدیل بایگانی به بایگانی نازک.
@file
خواندن گزینه‌های خط فرمان از file.

nm(1), ranlib(1), و مدخل‌های Info برای binutils.

حق نشر (c) 1991-2026 Free Software Foundation, Inc.

مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نگارش 1.3 یا هر نگارش بعدی منتشر شده توسط بنیاد نرم‌افزار آزاد اعطا می‌شود.

2026-07-30 binutils-2.47