UGREP-INDEXER(1) User Commands UGREP-INDEXER(1)

ugrep-indexer - نمایه‌ساز فایل برای شتاب‌بخشی به جستجوی بازگشتی

ugrep-indexer [-0...9] [-c|-d|-f] [-I] [-q] [-S] [-s] [-X] [-z] [PATH]

ابزار ugrep-indexer فایل‌ها را به‌صورت بازگشتی نمایه‌سازی می‌کند تا جستجوی بازگشتی را با دستورهای ug --index PATTERN سرعت بخشد:

$ ugrep-indexer [-I] [-z]

...
$ ug --index [-I] [-z] [-r|-R] OPTIONS PATTERN
$ ugrep --index [-I] [-z] [-r|-R] OPTIONS PATTERN

که در آن گزینهٔ -I یا --ignore-binary از فایل‌های باینری چشم‌پوشی می‌کند، که برای محدود کردن سربار فضای ذخیره‌سازی نمایه و کاهش زمان جستجو توصیه می‌شود. گزینهٔ -z یا --decompress بایگانی‌ها و فایل‌های فشرده را نمایه‌سازی و جستجو می‌کند.

نمایه‌سازی، جستجو در سیستم‌های فایلی بزرگ و سرد (فایل‌هایی که اخیراً در حافظهٔ RAM ذخیره نشده‌اند) و سیستم‌های فایلی که عموماً در جستجو کند هستند را سریع‌تر می‌کند. توجه داشته باشید که نمایه‌سازی ممکن است سرعت جستجوی تعداد کمی فایل یا جستجوی بازگشتی در سیستم‌های فایلی سریع را افزایش ندهد.

جستجو با ug --index ایمن است و هرگز از فایل‌های تغییریافته‌ای که ممکن است پس از نمایه‌سازی با الگو مطابقت داشته باشند گذر نمی‌کند؛ دستور ug --index PATTERN همواره فایل‌ها و دایرکتوری‌هایی را که پس از نمایه‌سازی اضافه یا تغییر یافته‌اند، جستجو می‌کند. هنگامی که گزینهٔ --stats همراه با ug --index استفاده می‌شود، گزارشی از جستجو تولید می‌گردد که تعداد فایل‌های رد شده‌ای که با هیچ نمایه‌ای مطابقت نداشتند و تعداد فایل‌ها و دایرکتوری‌هایی که پس از نمایه‌سازی اضافه یا اصلاح شده‌اند را نشان می‌دهد. توجه داشته باشید که جستجو با ug --index در صورتی که الگوهای regex پیچیده‌ای حاوی رده‌های کاراکتری بزرگ یونیکد ترکیب‌شده با تکرارهای `*' یا `+' تعیین شوند، ممکن است زمان راه‌اندازی را به‌طور چشمگیری افزایش دهد؛ از انجام این کار باید خودداری کرد.

ابزار ugrep-indexer یک فایل نمایهٔ پنهان را در هر دایرکتوری نمایه‌شده ذخیره می‌کند. اندازهٔ فایل نمایه به تعداد فایل‌های نمایه‌شده و دقت نمایه‌سازی تعیین‌شده بستگی دارد. دقت بالاتر فایل‌های نمایهٔ بزرگ‌تری تولید می‌کند تا با کاهش مثبت‌های کاذب (false positives)، کارایی جستجو را بهبود بخشد (مثبت کاذب پیش‌بینی تطابق برای فایلی است که در واقع با الگوی regex تطابق ندارد).

ابزار ugrep-indexer یک مسیر اختیاری PATH به ریشهٔ درخت دایرکتوری برای نمایه‌سازی را می‌پذیرد. پیش‌فرض، نمایه‌سازی درخت دایرکتوری کاری فعلی است.

ابزار ugrep-indexer نمایه‌ها را به‌صورت افزایشی به‌روزرسانی می‌کند. برای اجبار به نمایه‌سازی مجدد، گزینهٔ -f یا --force را مشخص کنید. نمایه‌ها با گزینهٔ -d یا --delete حذف می‌شوند.

اجرای ugrep-indexer را می‌توان در هر زمان متوقف کرد و برای ادامهٔ نمایه‌سازی مجدداً آغاز نمود. فایل‌های نمایهٔ ناکامل باعث بروز خطا نمی‌شوند.

فایل‌های ASCII، UTF-8، UTF-16 و UTF-32 به عنوان فایل‌های متنی نمایه‌سازی و جستجو می‌شوند، مگر اینکه کدگذاری UTF آن‌ها نامعتبر باشد. فایل‌های با سایر کدگذاری‌ها به عنوان فایل‌های باینری نمایه‌سازی شده و با استفاده از ug --index -U با الگوهای regex غیر یونیکدی قابل جستجو هستند.

هنگامی که گزینهٔ -I یا --ignore-binary برای ugrep-indexer مشخص شود، از فایل‌های باینری صرف‌نظر شده و نمایه نمی‌شوند. با استفاده از گزینهٔ -I در دستور ug --index -I، از جستجو در این فایل‌های باینری نمایه‌نشده خودداری کنید.

گزینهٔ -X یا --ignore-files در ugrep-indexer از قواعد gitignore پیروی می‌کند. به‌همین‌ترتیب، با استفاده از گزینهٔ --ignore-files در دستور ug --index --ignore-files، از جستجو در فایل‌های نادیده‌گرفته‌شده و نمایه‌نشده خودداری نمایید.

بایگانی‌ها و فایل‌های فشرده با گزینهٔ -z یا --decompress در ugrep-indexer نمایه‌سازی می‌شوند. در غیر این صورت، بایگانی‌ها و فایل‌های فشرده به عنوان فایل باینری نمایه‌سازی شده یا با گزینهٔ -I یا --ignore-binary نادیده گرفته می‌شوند. توجه داشته باشید که اگر یک بایگانی یا فایل فشرده به عنوان فایل باینری نمایه‌سازی شود، برای نمایه‌سازی محتوای درون آن مجدداً با گزینهٔ -z نمایه نخواهد شد. تنها فایل‌هایی که پس از نمایه‌سازی تغییر کرده باشند مجدداً نمایه می‌شوند که این امر از طریق مقایسهٔ برچسب‌های زمانی تعیین می‌گردد.

فایل‌های دارای پیوند نمادین با گزینهٔ -S یا --dereference-files در ugrep-indexer نمایه‌سازی می‌شوند. پیوندهای نمادین به دایرکتوری‌ها هرگز دنبال نمی‌شوند.

برای ذخیره کردن یک فایل گزارش از فرآیند نمایه‌سازی، گزینهٔ -v یا --verbose را مشخص کرده و خروجی استاندارد را به یک فایل لاگ هدایت کنید. تمام پیام‌ها و هشدارها به خروجی استاندارد ارسال شده و در فایل لاگ ثبت می‌شوند.

فایل پیکربندی .ugrep-indexer حاوی گزینه‌های پیکربندی، در صورت وجود در دایرکتوری کاری یا در دایرکتوری خانگی بارگذاری می‌شود. یک گزینهٔ پیکربندی شامل نام یک گزینهٔ بلند و در صورت وجود، آرگومان آن است.

گزینه‌های زیر در دسترس هستند:

-0, -1, -2, -3, ..., -9, --accuracy=DIGIT
دقت نمایه‌سازی را تعیین می‌کند. دقت کم، سربار فضای ذخیره‌سازی نمایه را به قیمت نرخ بالاتری از تطابق‌های مثبت کاذب الگو (نویز بیشتر) کاهش می‌دهد. دقت بالا، نرخ تطابق‌های مثبت کاذب الگوی regex را (نویز کمتر) به قیمت افزایش سربار فضای ذخیره‌سازی نمایه کاهش می‌دهد. دقتی بین 2 تا 7 توصیه می‌شود. دقت پیش‌فرض 4 است.
-., --hidden
نمایه‌سازی فایل‌ها و دایرکتوری‌های پنهان.
-?, --help
نمایش پیام راهنما و خروج.
بررسی و گزارش بازگشتی نمایه‌ها بدون نمایه‌سازی دوبارهٔ فایل‌ها.
حذف بازگشتی فایل‌های نمایه.
اجبار به نمایه‌سازی مجدد فایل‌ها، حتی فایل‌هایی که قبلاً نمایه شده‌اند.
فایل‌های باینری نمایه‌سازی نشوند.
حالت بی‌صدا: آمار نمایه‌سازی نمایش داده نشود.
دنبال کردن پیوندهای نمادین به فایل‌ها. پیوندهای نمادین به دایرکتوری‌ها هرگز دنبال نمی‌شوند.
حالت خاموش: فایل‌های ناموجود و غیرقابل خواندن نادیده گرفته می‌شوند، یعنی پیام‌های خطا و هشدارهای آن‌ها سرکوب می‌گردد.
نمایش نسخه و خروج.
تولید خروجی با جزئیات. فایل‌ها با A برای بایگانی (archive)، با C برای فشرده (compressed)، و B برای باینری (binary) یا I برای باینری نادیده‌گرفته‌شده علامت‌گذاری می‌شوند. حذف‌ها با D علامت می‌خورند.
عدم نمایه‌سازی فایل‌ها و دایرکتوری‌های منطبق بر الگوهای عمومی (globs) در FILE که در طول نمایه‌سازی با آن‌ها مواجه می‌شود. مقدار پیش‌فرض FILE برابر با `.gitignore' است. این گزینه می‌تواند برای تعیین فایل‌های بیشتر تکرار شود.
نمایه‌سازی محتوای فایل‌های فشرده و بایگانی‌ها. فایل‌های پنهان درون بایگانی‌ها نادیده گرفته می‌شوند مگر اینکه گزینهٔ -. یا --hidden مشخص شده باشد. گزینهٔ -I یا --ignore-binary فایل‌های باینری فشرده را نادیده می‌گیرد. هنگامی که همراه با گزینهٔ --zmax=NUM استفاده شود، محتوای فایل‌های فشرده و بایگانی‌های درون بایگانی‌ها را تا عمق NUM لایه نمایه‌سازی می‌کند. قالب‌های فشرده‌سازی پشتیبانی‌شده: gzip (.gz)، compress (.Z)، zip، 7z، bzip2 (نیاز به پسوند .bz، .bz2، .bzip2، .tbz، .tbz2، .tb2، .tz2 دارد)، lzma و xz (نیاز به پسوند .lzma، .tlz، .xz، .txz دارد)، lz4 (نیاز به پسوند .lz4 دارد)، zstd (نیاز به پسوند .zst، .zstd، .tzst دارد)، brotli (نیاز به پسوند .br دارد)، bzip3 (نیاز به پسوند .bz3 دارد).
هنگامی که همراه با گزینهٔ -z (--decompress) استفاده شود، محتوای فایل‌های فشرده و بایگانی‌های ذخیره‌شده درون بایگانی‌ها را تا حداکثر NUM لایهٔ بازگشایی در عمق، نمایه‌سازی می‌کند. مقدار پیش‌فرض --zmax=1 فقط امکان نمایه‌سازی فایل‌های فشرده‌نشدهٔ ذخیره‌شده در بایگانی‌های cpio، pax، tar، zip و 7z را می‌دهد؛ فایل‌ها و بایگانی‌های فشرده به عنوان فایل‌های باینری شناسایی شده و عملاً نادیده گرفته می‌شوند. مقدار --zmax=2 را برای نمایه‌سازی فایل‌ها و بایگانی‌های فشردهٔ قرارگرفته در بایگانی‌های cpio، pax، tar، zip و 7z تعیین کنید. مقدار NUM برای حداکثر ۹۹ مرحلهٔ فشرده‌گشایی و استخراج از بایگانی، می‌تواند در بازهٔ ۱ تا ۹۹ باشد. افزایش مقدار NUM به‌تدریج کارایی را کاهش می‌دهد.

ابزار ugrep-indexer با یکی از مقادیر زیر خارج می‌شود:

0
نمایه‌ها به‌روز هستند.
1
بررسی نمایه‌سازی -c فایل‌های نمایهٔ مفقود یا تاریخ‌گذشته را شناسایی کرد.

نمایه‌سازی بازگشتی و افزایشی تمام فایل‌های غیرباینری به همراه نمایش پیشرفت:

$ ugrep-indexer -I -v

نمایه‌سازی بازگشتی و افزایشی تمام فایل‌های غیرباینری، از جمله فایل‌های غیرباینری ذخیره‌شده در بایگانی‌ها و فایل‌های فشرده، به همراه نمایش پیشرفت:

$ ugrep-indexer -z -I -v

نمایه‌سازی افزایشی تمام فایل‌های غیرباینری شامل بایگانی‌ها و فایل‌های فشرده، نمایش پیشرفت، دنبال کردن پیوندهای نمادین به فایل‌ها (و نه دایرکتوری‌ها)، اما بدون نمایه‌سازی فایل‌ها و دایرکتوری‌های منطبق بر الگوهای .gitignore:

$ ugrep-indexer -z -I -v -S -X

اجبار به بازنمایه‌سازی تمام فایل‌های غیرباینری شامل بایگانی‌ها و فایل‌های فشرده، دنبال کردن پیوندهای نمادین به فایل‌ها (و نه دایرکتوری‌ها)، اما بدون نمایه‌سازی فایل‌ها و دایرکتوری‌های منطبق بر الگوهای .gitignore:

$ ugrep-indexer -f -z -I -v -S -X

همانند مورد قبل، اما با کاهش فضای ذخیره‌سازی فایل نمایه به حداقل از طریق کاهش دقت نمایه‌سازی از 4 (پیش‌فرض) به 0:

$ ugrep-indexer -f -0 -z -I -v -S -X

افزایش کارایی جستجو با بالا بردن دقت نمایه‌سازی از 4 (پیش‌فرض) به 7 به قیمت ایجاد فایل‌های نمایهٔ بزرگ‌تر:

$ ugrep-indexer -f7zIvSX

حذف بازگشتی تمام فایل‌های نمایهٔ پنهان ._UG#_Store برای بازگرداندن درخت دایرکتوری به حالت نمایه‌نشده:

$ ugrep-indexer -d

حق نشر (c) 2021-2025 Robert A. van Engelen <engelen@acm.org>

ابزار ugrep-indexer تحت مجوز BSD-3 منتشر شده است. تمام بخش‌های نرم‌افزار شرایط حق نشر معقولی دارند که بازتوزیع آزاد را مجاز می‌داند. این مورد شامل امکان استفادهٔ مجدد از تمام یا بخش‌هایی از درخت سورس‌کد ugrep است.

ug(1), ugrep(1).

گزارش اشکالات در:

https://github.com/Genivia/ugrep-indexer/issues
August 5, 2026 ugrep-indexer 7.8.4