.TH LESSPIPE.SH "1" "April 2026" "lesspipe.sh" "User Commands" .SH "نام (NAME)" lesspipe.sh \- پالایه‌ای برای less .SH "خلاصه دستور (SYNOPSIS)" .B lesspipe.sh [\fIFILE[s]\fR]... .SH "توضیحات (DESCRIPTION)" .PP هدف \fBlesspipe.sh\fP بهبود خروجی \fBless\fP است. انتخاب قواعدی که برای تغییر خروجی اعمال می‌شوند، بر اساس محتوای فایل انجام می‌گیرد. پسوند فایل تنها به عنوان آخرین راهکار در نظر گرفته می‌شود. معمولاً \fBlesspipe.sh\fP به عنوان یک پالایه ورودی برای \fBless\fP فراخوانی می‌شود. .PP به کمک این پالایه، \fBless\fP محتوای غیرفشرده فایل‌های فشرده (\fIgzip\fP، \fIbzip2\fP، \fIcompress\fP، \fIzstd\fP، \fIlz4\fP، \fIlzip\fP، \fIxz\fP، \fIlzma\fP، \fIzlib\fP یا \fIbrotli\fP) را نمایش می‌دهد. برای فایل‌های حاوی آرشیو و دایرکتوری‌ها، فهرستی از محتویات نمایش داده خواهد شد (قالب‌های \fItar\fP، \fIar\fP، \fIzip\fP، \fI7-zip\fP، \fIrar\fP، \fIjar\fP، \fIcpio\fP، \fIrpm\fP، \fIdeb\fP، \fIms-cabinet\fP، \fIiso\fP، \fIdmg\fP، \fIappimage\fP و \fIsnap\fP). بسیاری از فایل‌های دیگر نیز برای نمایش مجدداً قالب‌بندی می‌شوند. این شامل قالب‌های مجموعه‌های \fIpdf\fP، \fIdvi\fP، \fImarkdown\fP، \fIOffice (MS and OpenOffice)\fP، قالب‌های \fINetCDF\fP، \fImatlab\fP، \fIdevice tree blob\fP، \fIhtml\fP، \fIxml\fP و رسانه‌ای (\fIتصویر، صدا و ویدیو\fP) است. این کار مستلزم نصب برنامه‌های کمکی است. .PP این پالایه همچنین می‌تواند به صورت بازگشتی اعمال شود تا فایل‌های موجود در آرشیوها را در لحظه استخراج کرده و نمایش دهد. این سازوکار تا عمق ۶ کار می‌کند، که در آن اعمال هر الگوریتم رفع‌فشردگی به منزله یک سطح جداگانه به شمار می‌رود. .PP اگر ابزار file متنی را با کدگذاری متفاوتی نسبت به آنچه در ترمینال استفاده می‌شود گزارش کند، متن با استفاده از \fIiconv\fP به کدگذاری پیش‌فرض تبدیل خواهد شد. این موضوع فرض را بر این می‌گذارد که دستور \fIfile\fP کدگذاری فایل را به درستی تشخیص می‌دهد، که در برخی شرایط ممکن است نادرست باشد. افزودن یک دو‌نقطه به نام فایل مانع این تبدیل می‌شود. .PP هنگام استفاده از برنامه‌های \fBgit\fP، \fBvim\fP یا \fBmutt\fP، می‌توان آن‌ها را فعال کرد تا با استفاده از lesspipe.sh فایل‌های غیرمتنی را بخوانند. این فرایند در ویکی در \fIhttps://github.com/wofr06/lesspipe/wiki\fP شرح داده شده است. .SH "فعال‌سازی پالایه (FILTER ACTIVATION)" این پالایه به شرطی از \fBless\fP فراخوانی می‌شود که متغیر محیطی \fBLESSOPEN\fP به درستی تنظیم شده باشد. برای پوسته‌های شبه ksh (\fIbash\fP، \fIzsh\fP)، دستور .RS .I LESSOPEN="|lesspipe.sh %s"; export LESSOPEN .RE پالایه را برای less فعال می‌کند. چنانچه \fBlesspipe.sh\fP در مسیر جستجو قرار ندارد، از مسیر کامل استفاده کنید. دستور لازم برای تنظیم \fBLESSOPEN\fP می‌تواند با فراخوانی \fBlesspipe.sh\fP بدون هیچ آرگومانی نیز نمایش داده شود. این حتی می‌تواند برای تنظیم مستقیم \fBLESSOPEN\fP به کار رود: .EX .RS .I eval `lesspipe.sh` (bash) or .I lesspipe.sh | source /dev/stdin (zsh) .RE .EE .PP دستورهای بالا تنها در صورتی مطابق توضیحات کار می‌کنند که نام فایل \fBlesspipe.sh\fP باشد. اگر تحت نام دیگری نصب شده باشد، فراخوانی آن بدون آرگومان به عنوان یک پالایه با فعال بودن \fBLESSQUIET\fP عمل کرده و انتظار ورودی از STDIN را خواهد داشت. .PP با تنظیم متغیر محیطی به شرح فوق، \fBless\fP اطلاعات متنی را برای طیف وسیعی از قالب‌های فایل نمایش خواهد داد. .PP در حالت عادی اگر ورودی به less لوله‌کشی (pipe) شود، پالایه فراخوانی نمی‌شود؛ مانند: .RS .I cat somefile | less .RE با این حال همان‌طور که در صفحه راهنمای less توضیح داده شده است، پالایش در لوله را می‌توان با شروع \fBLESSOPEN\fP با نویسه‌های \fI|-\fP اجباری کرد. .PP اگر دستورات درون \fBlesspipe.sh\fP شکست بخورند، گاهی پیام‌های خطا نمایش داده می‌شوند؛ این رفتار یک اشکال (bug) در نظر گرفته می‌شود و باید گزارش شود. .PP برای جلوگیری از نمایش پیام‌های توصیفی در خط اول خروجی پالایه، متغیر محیطی \fBLESSQUIET\fP می‌تواند روی یک مقدار غیرخالی تنظیم شود. .PP برای از کار انداختن موقت پالایه، می‌توان یک دو‌نقطه به نام فایل اضافه کرد. اگر خروجی رنگی بوده باشد، دو‌نقطه فقط دستور رنگ‌آمیزی را غیرفعال می‌کند. در چنین حالتی ممکن است برای نمایش محتوای اصلی به یک دو‌نقطه دوم نیاز باشد. اگر نام فایل شامل دو‌نقطه باشد، باید به جای آن از علامت مساوی استفاده شود. .SH "فایل‌های HTML، XML و Perl POD (HTML, XML AND PERL POD FILES)" فایل‌های دارای قالب \fIHTML\fP و \fIPerl POD\fP همیشه پردازش و رندر می‌شوند. اما گاهی اوقات ممکن است بخواهید محتوای اصلی فایل را ببینید. همان‌طور که پیش‌تر گفته شد، این کار با افزودن یک دو‌نقطه به نام فایل قابل انجام است. اگر نوع فایل درست (\fIhtml\fP، \fIpod\fP) به دنبال آن بیاید، خروجی می‌تواند رنگ‌آمیزی شود (همچنین بخش زیر را ببینید). .PP .RS مثال: \fBless\fP \fIindex.html:html\fP .RE .PP اگر برنامه اجرایی \fIxmq\fP نصب شده باشد، \fIXML\fP به شکل متفاوتی رندر می‌شود تا تشخیص ساختار XML آسان‌تر شود. نمایش مشابهی برای محتویات \fIHTML\fP با استفاده از \fIxmq\fP نیز با افزودن یک دو‌نقطه به نام فایل به دست می‌آید. برای دریافت محتوای اصلی فایل HTML، در این حالت به دو بار درج دو‌نقطه نیاز است. طرح رنگ استفاده‌شده برای پس‌زمینه روشن است. برای انتخاب طرح رنگ تیره، متغیر محیطی \fIXMQ_THEME\fP باید روی مقدار \fIdark\fP تنظیم شود. .SH "رنگ‌آمیزی خروجی (OUTPUT COLORIZATION)" این پالایه قادر است برجسته‌سازی نحو را برای طیف وسیعی از انواع فایل انجام دهد. این قابلیت همیشه مطلوب نیست و می‌تواند نمایش فایل را به‌میزان قابل‌توجهی کند کند. از این رو، متغیر محیطی \fBLESS_MAXSIZE_COLOR\fP (پیش‌فرض: 200000) معرفی شده است. فایل‌های بزرگ‌تر رنگ‌آمیزی نمی‌شوند. در صورت نصب بودن، از \fInvimpager\fP برای رنگ‌آمیزی خروجی استفاده می‌شود. در غیر این صورت، برنامه‌های \fIbat\fP/\fIbatcat\fP، \fIpygmentize\fP، \fIe2ansi-cat\fP، \fIsource-highlight\fP، \fIvimcolor\fP و \fIcode2color\fP به نوبت امتحان می‌شوند. برای bat/batcat، تم روی \fIansi\fP و سبک روی \fIplain\fP تنظیم شده است که به خروجی پالایش‌نشده \fBless\fP نزدیک‌تر است. این تنظیمات را می‌توان در \fI~/.config/bat/config\fP یا با متغیرهای محیطی \fBBAT_STYLE\fP و \fBBAT_THEME\fP تغییر داد. .PP محتوای فایل‌های ثبت وقایع (log) در صورتی که برنامه \fItspin\fP نصب شده باشد و رشته ":log" به انتهای نام فایل ضمیمه شود یا پسوند فایل "log" باشد، می‌تواند رنگ‌آمیزی شود. .PP از میان ابزارهای رنگ‌آمیزی، می‌توان با تنظیم متغیر محیطی \fBLESSCOLORIZER\fP به نام ابزار مورد نظر، اولویت استفاده را به آن داد. برای \fIpygmentize\fP و \fIbat\fP/\fIbatcat\fP، تنظیمات محدود گزینه‌ها به صورت زیر مجاز است: .EX .RS .I LESSCOLORIZER='pygmentize -O style=foo' # -P allowed as well .I LESSCOLORIZER='bat --style=foo --theme=bar' # default: theme=ansi, style=plain .RE .EE .PP برجسته‌سازی نحو در صورتی فعال می‌شود که متغیر محیطی \fBLESS\fP وجود داشته و شامل گزینه \fI-R\fP باشد، یا اینکه less با این گزینه فراخوانی شود. این امر تضمین می‌کند که توالی‌های گریز (escape sequences) به رنگ تبدیل شده و نمایش صفحه را مخدوش نکنند. استفاده از گزینه \fI-r\fP توصیه نمی‌شود، زیرا در صورت وجود خطوط طولانی در خروجی، چیدمان صفحه نمایش ممکن است به هم بریزد. .PP برجسته‌سازی نحو را می‌توان در صورت رنگی بودن خروجی، با افزودن یک دو‌نقطه پس از نام فایل غیرفعال کرد. اگر زبان نادرستی برای برجسته‌سازی نحو انتخاب شده باشد، می‌توان با افزودن یک دو‌نقطه و یک پسوند به نام فایل، زبان دیگری را تحمیل نمود. فهرست پسوندها و زبان‌های پشتیبانی‌شده را می‌توان با استفاده از دستورهای رنگ‌آمیزی زیر چاپ کرد: .EX .RS .I bat --list-languages .I batcat --list-languages .I pygmentize -L lexers .I M-x -mode [TAB] within emacs .I source-highlight --lang-list .I code2color -h .I vimcolor -L (both for vimcolor and nvimpager) .RE .EE .PP در لوله‌ها (pipe)، این روش قابل استفاده نیست. به عنوان یک راه‌حل جایگزین، می‌توان یک آرگومان نهایی اضافه کرد که توسط \fBlesspipe.sh\fP بررسی می‌شود. استفاده از یک دو‌نقطه تکی (از کار انداختن پالایه) یا :extension (تحمیل زبان) امکان‌پذیر است، مانند: .RS .I command that generates C code | less - :c .RE .PP هنگامی که شرایط برجسته‌سازی نحو برقرار باشد، فهرست‌بندی دایرکتوری‌ها و فهرست محتوای فایل‌های tar نیز رنگ‌آمیزی می‌شوند. .PP از آنجا که \fBless\fP به عنوان مرورگر پیش‌فرض در برنامه‌های دیگر (مانند \fIman\fP، \fIgit\fP و \fIperldoc\fP) استفاده می‌شود، ممکن است \fBlesspipe.sh\fP به کار افتاده و خروجی آن برنامه‌ها را تغییر دهد. .SH "مشاهده فایل‌های در حال رشد (WATCHING GROWING FILES)" برای تمامی فایل‌های متنی ساده که به عنوان فایل لاگ شناسایی نشده‌اند، باز هم یک رنگ‌آمیز آزموده می‌شود زیرا گاهی می‌تواند نوع فایل را به درستی تشخیص داده و آن را به طور مناسب رنگ‌آمیزی کند. با این وجود، این کار قابلیت مشاهده فایل‌های در حال رشد با استفاده از دستور F در \fBless\fP را از بین می‌برد. برای حفظ قابلیت مشاهده فایل‌های در حال رشد بدون پسوند .log یا در حالتی که رنگ‌آمیز فایل لاگ \fBtspin\fP برای فایل‌های لاگ فراخوانی شده است، باید یک دو‌نقطه تکی به عنوان آرگومان دوم به فراخوانی less داده شود؛ مانند: .RS .I \fBless\fP /var/log/syslog : .RE این امر همچنین می‌تواند با فهرست کردن چنین فایل‌هایی در پرونده \fB.lessignore\fP در دایرکتوری خانگی کاربر انجام شود. ورودی‌ها مسیرهای کاملاً مشخص هستند یا شامل نویسه‌های تطبیق الگو (globbing) می‌شوند. چنین فایلی می‌تواند به شکل زیر باشد: .EX .RS .I syslog .I */syslog .I *.syslog .RE .EE این پیکربندی امکان مشاهده فایل‌های در حال رشد با نام syslog، تمام فایل‌های syslog در دایرکتوری‌های دلخواه و تمامی فایل‌های با پسوند .syslog را فراهم می‌سازد. .SH "استفاده پیشرفته (ADVANCED USAGE)" این نسخه از \fBlesspipe.sh\fP به شما اجازه می‌دهد فایل‌های مجزای موجود در یک آرشیو را، که خود حتی ممکن است درون آرشیو دیگری قرار داشته باشد، مشاهده کنید. .PP نشانه‌گذاری برای مشاهده فایل‌ها در آرشیوهای چندفایلی بدین صورت است: .RS .B less \fIarchive_file\fP:\fIcontained_file\fP .RE یا حتی .RS .B less \fIsuper_archive\fP:\fIarchive_file\fP:\fIcontained_file\fP .RE برای نمایش آخرین فایل در این زنجیره به صورت خام، باید یک دو‌نقطه (\fI:\fP) به انتهای نام فایل ضمیمه شود. اگر نام فایل شامل دو‌نقطه باشد، باید از نویسه جداکننده جایگزین یعنی علامت مساوی (\fI=\fP) استفاده شود. .PP مجدداً، این روش استخراج و نمایش فایل‌ها در صورتی که \fBless\fP در یک لوله خروجی فراخوانی شود و \fBLESSOPEN\fP با نویسه‌های \fB|-\fP آغاز گردد، کارایی ندارد. همانند حالت برجسته‌سازی نحو، راه‌حل استفاده از آرگومان دومی است که با یک دو‌نقطه شروع شود. در نتیجه دستور فوق به صورت زیر نوشته می‌شود: .RS \fBcat \fIsuper_archive\fP | \fBless\fP - :\fIarchive\fP:\fIcontained_file\fP .RE .PP .SH "سازوکار تکمیل خودکار برای محتوای آرشیوها (COMPLETING MECHANISM FOR ARCHIVE CONTENTS)" به لطف فایل \fIlesscomplete\fP ارائه‌شده (برای \fBzsh\fP و \fBbash\fP) و فایل‌های \fI_less\fP (برای \fBzsh\fP) و \fIless\fP (برای \fBbash\fP) که در طول نصب ایجاد می‌شوند، تکمیل با کلید تب (tab completion) برای فایل‌های موجود در آرشیوها امکان‌پذیر است. وارد کردن یک دو‌نقطه (:) یا یک علامت مساوی (=) پس از نام فایل آرشیو و سپس فشردن کلید تب، سازوکار تکمیل خودکار را فعال می‌سازد. این سازوکار در آرشیوهای زنجیره‌ای نیز کار می‌کند. فایل‌های مورد نیاز برای الگوریتم تکمیل، با توجه به گزینه‌های انتخاب‌شده در هنگام نصب (اسکریپت پیکربندی configure)، در دایرکتوری‌ها نصب می‌شوند. فایل \fIlesscomplete\fP باید در یکی از دایرکتوری‌های فهرست‌شده در \fB$PATH\fP و تابع \fI_less\fP برای \fBzsh\fP در دایرکتوری فهرست‌شده در \fI$fpath\fP قرار داشته باشد. فایل \fIless\fP همراه با دستورالعمل‌های تکمیل برای bash باید در یک اسکریپت راه‌اندازی bash، مانند \fI~/.bashrc\fP، با دستور source بارگذاری شود. دایرکتوری‌های جدید نظیر \fI~/scripts\fP و \fI~/.fpath\fP (برای zsh) را می‌توان با استفاده از دستورهای زیر اضافه کرد: .RS \fBPATH\fP=\fI~/scripts:$PATH\fP # (lesspipe.sh, less) \fBfpath\fP=\fI(~/.fpath $fpath)\fP # (_less, zsh only) .RE .PP در \fBzsh\fP، چنانچه از قبل انجام نشده باشد، باید \fIcompinit\fP فراخوانی شده و گزینه menucomplete تنظیم شود. این کار با دستورهای زیر میسر است: .EX .RS \fIautoload compinit\fP \fIcompinit -Uz\fP \fIsetopt menucomplete\fP .RE .EE .PP در \fBbash\fP، بسته \fIbash-completion\fP (معمولاً بسته‌ای با همین نام) باید نصب شده باشد. .SH "پالایش تعریف‌شده توسط کاربر (USER DEFINED FILTERING)" سازوکار پالایش کمتر‌پیپ (lesspipe.sh) را می‌توان با برنامه‌ای تعریف‌شده توسط کاربر جایگزین کرد یا آن را بهبود بخشید. چنین برنامه‌ای باید یا \fB.lessfilter\fP نامیده شود (و در دایرکتوری خانگی کاربر قرار گیرد) یا \fBlessfilter\fP نام داشته باشد (و از دایرکتوری ذکرشده در \fB$PATH\fP در دسترس باشد). این فایل باید قابل اجرا باشد و در صورتی که پالایش درون آن اسکریپت انجام گرفت، باید کد خروج 0 را برگرداند. در غیر این صورت، یک کد خروج غیر صفر نشان می‌دهد که انجام پالایش به lesspipe.sh واگذار شده است. .PP این سازوکار می‌تواند برای افزودن پالایش قالب‌های جدید، یا برای نمونه جهت مهار پالایش برای انواع خاصی از فایل‌ها به کار رود. یک نمونه .lessfilter می‌تواند به صورت زیر باشد: .EX .I #!/usr/bin/env bash .I .I case "$1" in .I *.md|*.MD|*.mkd|*.markdown|*.rst) .I # if the Python module rich.markdown is not found then .I # the exit code is nonzero and lesspipe.sh is called .I python3 -m rich.markdown -c "$1";; .I *.html|*.htm) .I # call your favorite HTML beautifier, cat -b is just a boring example .I cat -b "$1";; .I *) .I exit 1;; .I esac .EE .SH "نویسندگان (AUTHORS)" Wolfgang Friebel .SH "گزارش باگ‌ها (BUGS)" گزارش باگ‌ها را به ارسال کرده یا یک اشکال (issue) در github باز کنید. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" حق نشر \(co 2005-2026 متعلق به Wolfgang Friebel است. .br این یک نرم‌افزار آزاد است؛ برای شرایط تکثیر به کد مبدأ مراجعه کنید. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" less(1) .PP توضیحات مربوط به \fBlesspipe.sh\fP را می‌توان در README موجود در بسته کد مبدأ نیز یافت.