Z(1) دستورهای کاربر Z(1)

z - پرش سریع میان پوشه‌ها

z [-chlrtx] [regex1 regex2 ... regexn]

bash, zsh

پوشه‌های پرکاربرد شما را بر اساس «frecency» (ترکیب فراوانی و تازگی دسترسی) ردیابی می‌کند.

پس از یک مرحله یادگیری کوتاه، z شما را به مناسب‌ترین پوشه از نظر «frecency» که با تمام عبارات باقاعده (regex) داده‌شده در خط فرمان به ترتیب مطابقت دارد، منتقل می‌کند.

برای نمونه، z foo bar با /foo/bar تطبیق می‌یابد اما با /bar/foo مطابقت نخواهد داشت.

محدود کردن تطبیق‌ها به زیرپوشه‌های پوشه جاری
چاپ بهترین تطبیق در خروجی بدون اجرای cd
نمایش پیام راهنمای کوتاه
تنها فهرست کردن موارد
تطبیق تنها بر اساس رتبه (rank)
تطبیق تنها بر اساس زمان دسترسی اخیر
حذف پوشه جاری از فایل داده

انتقال به پرکاربردترین پوشه منطبق با foo
انتقال به مناسب‌ترین پوشه منطبق با foo و سپس bar
انتقال به بالاترین رتبه پوشه منطبق با foo
انتقال به تازه‌ترین پوشه مورد دسترسی منطبق با foo
فهرست کردن تمام پوشه‌های منطبق با foo (بر اساس frecency)

دستوری مانند این را در $HOME/.bashrc یا $HOME/.zshrc خود قرار دهید:

. /usr/share/z/z.sh

مدتی با دستور cd میان پوشه‌ها جابه‌جا شوید تا پایگاه‌داده ساخته شود.

اکنون آماده استفاده است!

به‌صورت اختیاری:

تنظیم $_Z_CMD برای تغییر نام دستور (پیش‌فرض z).
تنظیم $_Z_DATA برای تغییر فایل داده (پیش‌فرض $HOME/.z).
تنظیم مقدار کمتر برای $_Z_MAX_SCORE جهت کهنه‌شدن و حذف سریع‌تر ورودی‌ها (پیش‌فرض 9000).
تنظیم $_Z_NO_RESOLVE_SYMLINKS برای جلوگیری از حل پیوندهای نمادین.
تنظیم $_Z_NO_PROMPT_COMMAND برای مدیریت دستی PROMPT_COMMAND/precmd توسط خودتان.
تنظیم $_Z_EXCLUDE_DIRS به آرایه‌ای از درخت‌های دایرکتوری جهت استثنا کردن از ردیابی.
تنظیم $_Z_OWNER برای مجاز ساختن استفاده در حالت 'sudo -s'.
(این تنظیمات باید پیش از خط اضافه شده در بالا، درون .bashrc/.zshrc قرار گیرند.)
نصب صفحه راهنمای ارائه‌شده (z.1) در محلی درون $MANPATH شما، مانند /usr/local/man/man1.

رتبه پوشه‌های نگهداری‌شده توسط z بر اساس یک فرمول ساده دچار کهنگی و کاهش تدریجی می‌شود. رتبه هر ورودی با هر بار دسترسی افزایش می‌یابد. هنگامی که مجموع رتبه‌ها از ۹۰۰۰ بیشتر شود، تمام رتبه‌ها در ۰٫۹۹ ضرب می‌شوند. ورودی‌های دارای رتبه کمتر از ۱ فراموش می‌شوند.

واژه Frecency ترکیبی از دو کلمه 'recent' (تازگی) و 'frequency' (تکرار و فراوانی) است. این معیار، رتبه‌ای وزندار است که به میزان تکرار و تازگی رخداد یک رویداد بستگی دارد. تا آنجا که مشخص است، موزیلا (Mozilla) این اصطلاح را ابداع کرده است.

از دید z, پوشه‌ای که رتبه پایینی دارد اما اخیراً مورد دسترسی قرار گرفته، به‌سرعت رتبه بالاتری نسبت به پوشه‌ای که مدت‌ها پیش به دفعات زیاد استفاده شده به دست خواهد آورد.

معیار Frecency در زمان اجرا تعیین می‌شود.

هنگامی که چندین پوشه با تمام عبارت‌های جستجو تطابق داشته باشند و همگی دارای پیشوند مشترک باشند، z بدون توجه به اولویت، به کوتاه‌ترین پوشه منطبق تغییر مسیر می‌دهد. این رفتار مدت‌هاست که وجود داشته (هرچند مستند نشده بود)، اما احتمالاً باید قابل پیکربندی باشد یا مورد بازنگری قرار گیرد.

دستور z از تکمیل خودکار با کلید Tab پشتیبانی می‌کند. پس از وارد کردن هر تعداد آرگومان، با فشردن کلید TAB می‌توانید نام پوشه‌هایی را که با هر آرگومان مطابقت دارند تکمیل کنید. به دلیل محدودیت‌های پیاده‌سازی تکمیل خودکار، تنها آخرین آرگومان در شل تکمیل خواهد شد.

درون برنامه، z زمانی تشخیص می‌دهد که شما درخواست تکمیل خودکار داده‌اید که آخرین آرگومان ارسال‌شده، یک مسیر مطلق به یک پوشه موجود باشد. این امر ممکن است در صورتی که آخرین آرگومان ورودی z با / شروع شود، رفتاری غیرمنتظره ایجاد کند.

تابع _z() تعریف شده است.

محتوای متغیر $_Z_CMD به _z 2>&1 نام مستعار (alias) داده شده است. در صورت تنظیم نشدن، $_Z_CMD به‌طور پیش‌فرض برابر با z خواهد بود.

متغیر محیطی $_Z_DATA می‌تواند برای کنترل مکان فایل داده استفاده شود. اگر تعریف نشده باشد، مکان پیش‌فرض آن $HOME/.z است.

متغیر محیطی $_Z_NO_RESOLVE_SYMLINKS می‌تواند برای جلوگیری از حل پیوندهای نمادین تنظیم شود. در صورت عدم تنظیم، پیوندهای نمادین هنگام اضافه شدن به فایل داده حل خواهند شد.

در bash، دستور z فرمانی را به متغیر محیطی PROMPT_COMMAND اضافه می‌کند تا پایگاه‌داده خود را نگهداری کند. در zsh، z تابع _z_precmd را به آرایه precmd_functions می‌افزاید.

متغیر محیطی $_Z_NO_PROMPT_COMMAND می‌تواند در صورتی که بخواهید خودتان PROMPT_COMMAND یا precmd را مدیریت کنید، تنظیم شود.

متغیر محیطی $_Z_EXCLUDE_DIRS می‌تواند به آرایه‌ای از درخت‌های دایرکتوری تنظیم شود تا از ردیابی مستثنی گردند. $HOME همیشه مستثنی است. پوشه‌ها باید مسیرهای کامل و بدون اسلش پایانی باشند.

متغیر محیطی $_Z_OWNER می‌تواند روی نام کاربری شما تنظیم شود تا استفاده از z را هنگامی که محیط sudo متغیر $HOME شما را حفظ می‌کند، امکان‌پذیر سازد.

داده‌ها در $HOME/.z ذخیره می‌شوند. این مسیر می‌تواند با تنظیم متغیر محیطی $_Z_DATA تغییر یابد. هنگام مقداردهی اولیه، اگر این مسیر یک پوشه باشد، z خطا ایجاد کرده و به‌درستی کار نخواهد کرد.

یک صفحه راهنما (z.1) ارائه شده است.

regex(7), pushd, popd, autojump, cdargs

لطفاً گزارش باگ‌ها را در نشانی https://github.com/rupa/z ثبت کنید

January 2013 z