.\"***************************************************************************** .\" Copyright 1994-2025,2026 by Thomas E. Dickey .\" .\" Permission is hereby granted, free of charge, to any person obtaining a .\" copy of this software and associated documentation files (the "Software"), .\" to deal in the Software without restriction, including without limitation .\" the rights to use, copy, modify, merge, publish, distribute, sublicense, .\" and/or sell copies of the Software, and to permit persons to whom the .\" Software is furnished to do so, subject to the following conditions: .\" .\" The above copyright notice and this permission notice shall be included in .\" all copies or substantial portions of the Software. .\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL .\" THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER .\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING .\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER .\" DEALINGS IN THE SOFTWARE. .\" .\" Except as contained in this notice, the name(s) of the above copyright .\" holders shall not be used in advertising or otherwise to promote the sale, .\" use or other dealings in this Software without prior written authorization. .\"***************************************************************************** .\" $Id: diffstat.1,v 1.47 2026/04/15 00:44:30 tom Exp $ .TH DIFFSTAT 1 2026-04-14 "1.69" "User commands" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .\} .SH "نام (NAME)" diffstat \- ایجاد نمودار فراوانی (هیستوگرام) از خروجی دستور diff .SH "خلاصه دستور (SYNOPSIS)" \fBdiffstat\fI [گزینه‌ها] [مشخصات\-فایل]\fR .SH "توضیحات (DESCRIPTION)" این برنامه خروجی \fBdiff\fP را می‌خواند و یک هیستوگرام از سطر‌های اضافه‌شده، حذف‌شده و تغییر‌یافته را به تفکیک پرونده نمایش می‌دهد. ابزار \fBDiffstat\fP برای بررسی فایل‌های وصله (patch) بزرگ و پیچیده بسیار کارآمد است. این برنامه از یک یا چند پرونده ورودی حاوی خروجی \fBdiff\fP می‌خواند و هیستوگرامی از کل سطرهای تغییر‌یافته برای هر پرونده ارجاع داده‌شده تولید می‌کند. .PP اگر نام پرونده ورودی به \*(``.bz2\*('', \*(``.gz\*('', \*(``.lzma\*('', \*(``.xz\*('', \*(``.zst\*('', \*(``.z\*('' یا \*(``.Z\*('', ختم شود، \fBdiffstat\fP داده‌های غیرفشرده را از طریق لوله (pipe) از برنامه مربوطه می‌خواند. همچنین می‌تواند نوع فشرده‌سازی را از پرونده‌هایی که از طریق ورودی استاندارد ارسال می‌شوند تشخیص دهد. .PP ابزار \fBDiffstat\fP پرکاربردترین انواع خروجی \fBdiff\fP را تشخیص می‌دهد: .RS 3 .TP unified نوع ترجیحی ابزار \fBpatch\fP. .TP context بهترین حالت برای خوانایی، اما نه چندان فشرده. .TP default کاربرد چندانی ندارد، اما تولید آن ساده است. .RE .PP ابزار \fBDiffstat\fP سطرهایی را که توسط \fBdiff\fP خروجی داده شده‌اند برای تشخیص پرونده‌های مقایسه‌شده شناسایی می‌کند و سپس نشانگرهای ستون اول را که نوع تغییر (افزودن، حذف یا تغییر) را مشخص می‌کنند، می‌شمارد. این موارد در هیستوگرام با نویسه‌های "+"، "\-" و "!" نمایش داده می‌شوند. .PP اگر هیچ نام فایلی در خط فرمان داده نشود، \fBdiffstat\fP تفاوت‌ها را از ورودی استاندارد می‌خواند. .SH "گزینه‌ها (OPTIONS)" .TP .B \-b نادیده گرفتن خطوط مطابق با "Binary files XXX and YYY differ" در خروجی \fBdiff\fP. .TP .B \-c افزودن پیشوند "#" به ابتدای هر خط خروجی، که آن را به یک خط کامنت برای اسکریپت‌های پوسته تبدیل می‌کند. .TP .B \-C افزودن توالی‌های گریز رنگی SGR برای برجسته‌سازی هیستوگرام. .TP .BI \-D " مقصد" مشخص کردن دایرکتوری حاوی پرونده‌هایی که می‌توانند به عنوان نتیجه اعمال تفاوت‌ها در نظر گرفته شوند. ابزار \fBdiffstat\fP سطرهای موجود در پرونده‌های مربوطه را (پس از تطبیق نام‌ها توسط گزینه \fB\-p\fP) می‌شمارد تا تعداد کل سطرهای هر پرونده را به دست آورد. .IP باقیمانده، پس از کسر سطرهای تغییریافته و حذف‌شده، به عنوان "سطرهای بدون تغییر" (unchanged lines) نمایش داده می‌شود. .TP .B \-d حالت اشکال‌زدایی اطلاعات زیادی چاپ می‌کند. این حالت معمولاً به‌صورت کامپایل‌شده درون برنامه قرار دارد، اما می‌توان جلوی آن را گرفت. .TP .BI \-e " پرونده" هدایت خطای استاندارد به \fIپرونده\fR. .TP .B \-E حذف توالی‌های گریز ANSI از هر خط پیش از تجزیه تفاوت‌ها. این امر به \fBdiffstat\fP اجازه می‌دهد با \fBcolordiff\fP استفاده شود. .TP .BI \-f " قالب" مشخص کردن قالب هیستوگرام. .RS .TP 3 0 برای خروجی مختصر، که فقط مقدار و یک کد هیستوگرام برای هر یک از درج (+)، حذف (\-) یا تغییر (!) را نشان می‌دهد. .TP 3 1 برای خروجی عادی. .TP 3 2 برای پر کردن هیستوگرام با نقطه. .TP 3 4 برای چاپ هر مقدار در کنار هیستوگرام. .RE .IP هر مقدار غیرصفر یک هیستوگرام تولید می‌کند. نقطه‌ها و مقادیر جداگانه می‌توانند با هم ترکیب شوند، برای نمونه \fB\-f6\fP هر دو را اعمال می‌کند. .TP .B \-h نمایش پیام راهنما و خروج. .TP .B \-k جلوگیری از ادغام نام پرونده‌ها در گزارش. .TP .B \-K تلاش برای بهبود حاشیه‌نویسی پرونده‌های "only" با جستجوی مطابقت در مجموعه پرونده‌های حاصل و استنتاج این که پرونده اضافه یا حذف شده است. .IP این گزینه در حال حاضر در ترکیب با \fB\-R\fP کار نمی‌کند زیرا \fBdiffstat\fP فقط مجموعه پرونده‌های حاصل را نگه می‌دارد. .TP .B \-l فقط فهرست کردن نام پرونده‌ها. هیچ هیستوگرامی تولید نمی‌شود. .TP .B \-m ادغام شمارش درج/حذف از هر تکه (chunk) پرونده وصله برای تخمین تعداد سطرهای تغییر‌یافته. .TP .BI \-n " عدد" تعیین حداقل عرض مورد استفاده برای نام پرونده‌ها. اگر این را مشخص نکنید، \fBdiffstat\fP از طول طولانی‌ترین نام پرونده پس از حذف پیشوندهای مشترک استفاده می‌کند. .TP .BI \-N " عدد" تعیین حداکثر عرض مورد استفاده برای نام پرونده‌ها. نام‌های طولانی‌تر از این حد از سمت چپ کوتاه می‌شوند. اگر این را مشخص نکنید، \fBdiffstat\fP گزینه \fB\-n\fP را بررسی می‌کند. .TP .BI \-o " پرونده" هدایت خروجی استاندارد به \fIپرونده\fR. .TP .BI \-p " عدد" نادیده گرفتن منطقی که مسیرهای مشترک را حذف می‌کند، شبیه‌سازی گزینه "\-p" در \fBpatch\fP. .IP اگر گزینه \fB\-p\fP را تعیین نکنید، \fBdiffstat\fP تفاوت‌ها را بررسی کرده و پیشوند مشترک را از مسیرها حذف می‌کند. این رفتاری نیست که \fBpatch\fP انجام می‌دهد. .TP .B \-q صرف‌نظر کردن از پیام "0 files changed" برای diffهای خالی. .TP .B \-r " کد" گرد کردن اختیاری داده‌های نمایش‌داده‌شده در هیستوگرام را به جای برش با تعدیل خطا فراهم می‌کند. .RS .TP 3 0 حالت پیش‌فرض است. هیچ گرد کردنی انجام نمی‌شود، اما خطاهای انباشته‌شده به ستون‌های بعدی افزوده می‌شوند. .TP 3 1 داده‌ها را گرد می‌کند. .TP 3 2 داده‌ها را گرد کرده و هیستوگرام را تنظیم می‌کند تا در صورت وجود هرگونه تفاوت مطمئن شود چیزی نمایش داده می‌شود، حتی اگر آن تفاوت‌ها در حالت عادی به صفر گرد شوند. .RE .TP .B \-R فرض می‌کند وصله با جابجایی فایل‌های قدیمی و جدید ایجاد شده است. .TP .B \-s فقط نمایش خط خلاصه، مانند تعداد درج‌ها و حذف‌ها. .TP .BI \-S " مبدا" مشابه گزینه \fB\-D\fP است، اما مکانی را مشخص می‌کند که پرونده‌های اصلی (پیش از اعمال تفاوت‌ها) در آن یافت می‌شوند. .TP .B \-t جایگزین کردن هیستوگرام؛ خروجی مقادیر جداشده با کاما را برای تعداد سطرهای تغییریافته در تفاوت‌های هر پرونده تولید می‌کند: درج‌شده، حذف‌شده و تغییریافته. .IP اگر گزینه‌های \fB\-S\fP یا \fB\-D\fP داده شوند، تعداد سطرهای بدون تغییر پیش از تعداد تغییرات می‌آید. .TP .B \-T چاپ اعدادی که گزینه \fB\-t\fP نشان می‌داد، بین مسیر و هیستوگرام. .IP عرض تعداد تغییرات بر اساس بزرگ‌ترین مقدار تعیین می‌شود (حداقل ۳). عرض تعیین‌شده در گزینه \fB\-w\fP جدا از عرض این اعداد است. .TP .B \-u جلوگیری از مرتب‌سازی نام پرونده‌ها در گزارش. .TP .B \-v نمایش پیشرفت کار؛ برای نمونه اگر خروجی به یک فایل هدایت شده باشد، پیام‌های پیشرفت را در خطای استاندارد می‌نویسد. .TP .B \-V چاپ شماره نسخه فعلی و خروج. .TP .BI \-w " عدد" تعیین حداکثر عرض هیستوگرام. هیستوگرام هرگز کوتاه‌تر از ۱۰ ستون نخواهد بود، تا در صورتی که نام پرونده‌ها بسیار بزرگ شدند مشکلی پیش نیاید. .IP عرض پیش‌فرض ۸۰ ستون است، مگر اینکه خروجی به ترمینال باشد. در آن صورت، عرض پیش‌فرض برابر با عرض ترمینال خواهد بود. .SH "محیط (ENVIRONMENT)" ابزار \fBDiffstat\fP در یک محیط سازگار با POSIX اجرا می‌شود. .PP می‌توانید مسیرهای داخلی برنامه‌های استفاده‌شده برای استخراج و غیرفشرده‌سازی پرونده‌های ورودی را با تنظیم متغیرهای محیطی متناظر تغییر دهید: .sp .RS .nf DIFFSTAT_BZCAT_PATH DIFFSTAT_BZIP2_PATH DIFFSTAT_COMPRESS_PATH DIFFSTAT_GZIP_PATH DIFFSTAT_LZCAT_PATH DIFFSTAT_PCAT_PATH DIFFSTAT_UNCOMPRESS_PATH DIFFSTAT_XZ_PATH DIFFSTAT_ZCAT_PATH DIFFSTAT_ZSTD_PATH .fi .RE .PP با این حال، \fBdiffstat\fP فرض می‌کند که برنامه حاصل از همان گزینه‌های خط فرمان استفاده می‌کند، مثلاً "\-c" برای استخراج در خروجی استاندارد. .SH "فایل‌ها (FILES)" ابزار \fBDiffstat\fP یک ماژول باینری منفرد است که از هیچ پرونده کمکی استفاده نمی‌کند. .SH "گزارش اشکال (BUGS)" ابزار \fBDiffstat\fP فرضیات زیادی درباره قالب خروجی \fBdiff\fP در نظر می‌گیرد. .PP هیچ راهی برای دریافت نام پرونده از خروجی استاندارد \fBdiff\fP بین دو فایل بدون هیچ گزینه‌ای وجود ندارد. تفاوت‌های زمینه‌ای (Context diffs) و تفاوت‌های یکپارچه (unified diffs) به‌خوبی کار می‌کنند. .PP هیچ روش ساده‌ای برای تعیین میزان همپوشانی بین نمایش «قبل» و «بعد» خطوط تغییریافته وجود ندارد. برنامه \fBdiffstat\fP صرفاً تعداد خطوط درج‌شده و حذف‌شده را می‌شمارد تا برای گزینه \fB\-m\fP خطوط تغییریافته را تخمین بزند. .SH "نویسندگان (AUTHORS)" Thomas Dickey . .SH "همچنین ببینید (SEE ALSO)" .BR diff (1), .BR patch (1).