bup-midx(1) General Commands Manual bup-midx(1)

bup-midx - ایجاد یک ایندکس چندگانه (midx) از فایل‌های ایندکس بسته bup

bup midx [-o outfile] <-a|-f|idxnames...>

دستور bup midx یک فایل ایندکس چندگانه (.midx) از یک یا چند فایل ایندکس بسته گیت (.idx) ایجاد می‌کند.

نکته: دیگر نباید نیازی به اجرای دستی این دستور داشته باشید. این دستور به طور خودکار توسط bup-save(1) و دستورات مشابه اجرا می‌شود.

استفاده از نام فایل خروجی ارائه‌شده برای فایل .midx. مقدار پیش‌فرض به صورت خودکار ایجاد می‌شود.
تولید خودکار فایل‌های .midx جدید برای هر یک از فایل‌های .idx که مناسب باشد.
اجبار به ایجاد یک فایل .midx جدید و منفرد شامل تمام فایل‌های .idx شما، حتی اگر فایل‌های .midx دیگری از قبل وجود داشته باشند. این امر موجب سریع‌ترین عملکرد پشتیبان‌گیری خواهد شد، اما ممکن است اجرای آن زمان زیادی ببرد.
مشخص کردن دایرکتوری حاوی فایل‌های .idx/.midx جهت پردازش. مقدار پیش‌فرض $BUP_DIR/objects/pack است.
حداکثر تعداد فایل‌های .idx برای باز کردن به طور همزمان. اگر تعداد توصیف‌کننده‌های فایل (file descriptors) در دسترس شما بسیار کم است، می‌توانید از این گزینه استفاده کنید تا midx بتواند کار خود را (اگرچه احتمالاً به شکل غیربهینه) به پایان برساند، حتی اگر نتواند همه فایل‌های .idx شما را به طور همزمان باز کند. مقدار پیش‌فرض این گزینه برای بیشتر کاربران مناسب خواهد بود.
اعتبارسنجی یک فایل .midx از طریق اطمینان حاصل کردن از این‌که تمامی اشیاء موجود در فایل‌های .idx دربرگرفته‌شده، درون .midx وجود دارند. ممکن است برای اشکال‌زدایی مفید باشد.

$ bup midx -a
Merging 21 indexes (2278559 objects).
Table size: 524288 (17 bits)
Reading indexes: 100.00% (2278559/2278559), done.
midx-b66d7c9afc4396187218f2936a87b865cf342672.midx

به طور پیش‌فرض، bup از فایل‌های بسته (pack) با قالب گیت استفاده می‌کند که شامل یک فایل pack (حاوی اشیاء) و یک فایل idx (حاوی فهرستی مرتب‌شده از نام‌های اشیاء و آفست‌های آن‌ها در فایل .pack) هستند.

فایل‌های idx معمولی راحت هستند زیرا به این معنی است که می‌توانید از git(1) برای دسترسی به مجموعه‌داده‌های پشتیبان خود استفاده کنید. با این حال، زمانی که تعداد زیادی بسته بسیار بزرگ داشته باشید (چیزی که معمولاً در گیت وجود ندارد، اما در bup زیاد دیده می‌شود)، فایل‌های idx می‌توانند کند شوند.

فایل‌های .midx در bup از یک فهرست مرتب‌شده واحد از تمامی اشیاء موجود در تمام فایل‌های .pack که به آن‌ها ارجاع دارد تشکیل شده‌اند. این فهرست را می‌توان با جستجوی دودویی در حدود log2(m) مرحله جستجو کرد، که در آن m تعداد کل اشیاء است.

جهت افزایش بیشتر سرعت جستجو، فایل‌های midx همچنین دارای یک جدول توزیع (fanout table) با اندازه متغیر هستند که n مرحله نخست جستجوی دودویی را کاهش می‌دهد. به کمک این جدول توزیع، bup می‌تواند تنها با یک بار جستجو تعیین کند که شناسه یک شیء معین (در صورت وجود) در کدام صفحه از فایل midx قرار خواهد داشت. بدین ترتیب، جستجوهای متداول تنها نیاز به بارگذاری دو صفحه خواهند داشت: یکی برای جدول توزیع، و دیگری برای شناسه شیء.

فایل‌های midx بیشترین کاربرد را هنگام ایجاد پشتیبان‌های جدید دارند، زیرا جستجو برای یک شیء ناموجود در مخزن، لزوماً نیازمند جستجو در تمام فایل‌های ایندکس است تا اطمینان حاصل شود که وجود ندارد. (جستجو برای اشیائی که وجود دارند را می‌توان بهینه‌سازی کرد؛ به عنوان مثال، اشیاء متوالی معمولاً در همان بسته ذخیره می‌شوند، بنابراین می‌توان ابتدا با استفاده از الگوریتم MRU همان بسته را جستجو کرد.)

bup-save(1), bup-margin(1), bup-memtest(1)

بخشی از مجموعه bup(1).

Avery Pennarun apenwarr@gmail.com.

2026-09-01 Bup 0.34+