LSDIFF(1) Man pages LSDIFF(1) نام (NAME) lsdiff - نمایش فایل‌های تغییریافته توسط یک وصله خلاصه دستور (SYNOPSIS) lsdiff [[-n] | [--line-number]] [[-p n] | [--strip-match=n]] [--strip=n] [--git-prefixes=strip|keep] [--git-extended-diffs=exclude|include] [--addprefix=PREFIX] [--addoldprefix=PREFIX] [--addnewprefix=PREFIX] [[-s] | [--status]] [[-E] | [--empty-files-as-removed]] [[-i PATTERN] | [--include=PATTERN]] [[-I FILE] | [--include-from-file=FILE]] [[-x PATTERN] | [--exclude=PATTERN]] [[-X FILE] | [--exclude-from-file=FILE]] [[-z] | [--decompress]] [[-# RANGE] | [--hunks=RANGE]] [--lines=RANGE] [[-FRANGE] | [--files=RANGE]] [[-H] | [--with-filename]] [[-h] | [--no-filename]] [[-v] | [--verbose]...] [file...] lsdiff {[--help] | [--version] | [--filter ...] | [--grep ...]} توضیحات (DESCRIPTION) فهرست کردن فایل‌هایی که توسط یک وصله (patch) تغییر یافته‌اند. می‌توانید در این برنامه از diffهایی با قالب‌های unified، context و Git استفاده کنید. قالب Git شامل پشتیبانی از فایل‌های باینری، تغییر نام فایل‌ها، تغییرات حالت مجوز (permission mode) و سایر قابلیت‌های ویژهٔ diff در Git است. گزینه‌ها (OPTIONS) -n, --line-number نمایش شمارهٔ خطی که هر وصله از آن آغاز می‌شود. اگر خروجی با جزئیات بیشتر درخواست شود (با استفاده از -nv)، هر قطعه (hunk) از هر وصله نیز فهرست می‌شود. به ازای هر فایلی که تغییر یافته است، خطی تولید می‌شود شامل شمارهٔ خط آغاز وصله، به دنبال آن یک نویسهٔ Tab، و سپس نام فایلی که تغییر یافته است. اگر -v یک بار داده شود، به دنبال هر یک از این خطوط، یک خط به ازای هر قطعه (hunk) خواهد آمد که شامل یک نویسهٔ Tab، شماره خطی که قطعه از آن آغاز می‌شود، یک نویسهٔ Tab دیگر، رشتهٔ “Hunk #” و شمارهٔ قطعه (شروع از ۱) است. اگر -v دو بار همراه با -n داده شود (یعنی -nvv)، قالب خروجی اندکی متفاوت خواهد بود: متن توصیفی سطحِ قطعه پس از هر شمارهٔ قطعه نمایش داده می‌شود، و گزینهٔ --number-files فعال می‌گردد. -N, --number-files شماره‌های فایل، با شروع از ۱، پیش از هر نام فایل فهرست می‌شوند. -#RANGE, --hunks=RANGE تنها قطعه‌هایی (hunks) را فهرست می‌کند که در RANGE مشخص‌شده قرار دارند. قطعه‌ها از ۱ شماره‌گذاری می‌شوند و بازه شامل فهرستی از اعداد یا محدوده‌های “first-last” است که با کاما از هم جدا شده‌اند، و به صورت اختیاری یک اصلاح‌کنندهٔ 'x' می‌تواند در ابتدای آن قرار گیرد که کل بازه را معکوس می‌کند؛ می‌توان ابتدا یا انتهای بازه را حذف کرد تا نبود محدودیت در آن جهت مشخص شود. --lines=RANGE تنها قطعه‌هایی را فهرست می‌کند که شامل خطوطی از فایل اصلی در RANGE مشخص‌شده باشند. خط‌ها از ۱ شماره‌گذاری می‌شوند و بازه شامل فهرستی از اعداد یا محدوده‌های “first-last” است که با کاما از هم جدا شده‌اند، و به صورت اختیاری یک اصلاح‌کنندهٔ 'x' می‌تواند در ابتدای آن قرار گیرد که کل بازه را معکوس می‌کند؛ می‌توان ابتدا یا انتهای بازه را حذف کرد تا نبود محدودیت در آن جهت مشخص شود. -F=RANGE, --files=RANGE تنها فایل‌های مشخص‌شده در RANGE را فهرست می‌کند. فایل‌ها بر اساس ترتیبی که در ورودی وصله ظاهر می‌شوند از ۱ شماره‌گذاری می‌گردند، و بازه شامل فهرستی از اعداد یا محدوده‌های “first-last” است که با کاما از هم جدا شده‌اند، و به صورت اختیاری یک اصلاح‌کنندهٔ 'x' می‌تواند در ابتدای آن قرار گیرد که کل بازه را معکوس می‌کند؛ می‌توان ابتدا یا انتهای بازه را حذف کرد تا نبود محدودیت در آن جهت مشخص شود. -pn, --strip-match=n هنگام تطبیق، نخستین n بخش از مسیر فایل (pathname) نادیده گرفته می‌شود. --strip=n پیش از نمایش نام مسیر (pathname)، نخستین n بخش از آن را حذف می‌کند. --git-prefixes=strip|keep نحوهٔ رفتار با پیشوندهای a/ و b/ در نام فایل‌های diff در Git. با strip، پیشوندها هم برای تطبیق نام فایل (هنگام استفاده از گزینه‌های -i و -x) و هم برای خروجی نام فایل (مشابه --strip) حذف می‌شوند. با keep (پیش‌فرض)، رفتار کنونی حفظ می‌شود. این گزینه هم برای diffهای اختصاصی Git (فایل‌های باینری، تغییر نام‌ها، تغییرات حالت مجوز) و هم برای diffهای سنتی که بخشی از یک وصلهٔ Git هستند اعمال می‌شود. نکته: با keep، با عملیات کپی و تغییر نام به گونه‌ای رفتار می‌شود که گویی دارای پیشوندهای a/ و b/ هستند تا با سایر عملیات Git سازگار باشند. مقدار پیش‌فرض در نسخهٔ 0.5.0 به strip تغییر خواهد کرد. --git-extended-diffs=exclude|include تعیین می‌کند که آیا diffهای Git بدون قطعه‌های محتوایی سنتی پردازش شوند یا خیر. این شامل تغییر نام‌ها، کپی‌ها، تغییرات صرفاً مربوط به حالت مجوز، و فایل‌های باینری می‌شود. با exclude (پیش‌فرض در 0.4.x)، از این diffها صرف‌نظر می‌شود. با include (پیش‌فرض در 0.5.0+)، این diffها به طور عادی پردازش می‌شوند. این گزینه بر شماره‌گذاری فایل‌ها با -N و پالایش فایل‌ها با -F اثر می‌گذارد. --addprefix=PREFIX پیش از نمایش مسیر، PREFIX را به عنوان پیشوند به آن اضافه می‌کند. --addoldprefix=PREFIX پیش از نمایش مسیر برای فایل‌های قدیمی، PREFIX را به عنوان پیشوند به آن‌ها اضافه می‌کند. --addnewprefix=PREFIX پیش از نمایش مسیر برای فایل‌های جدید، PREFIX را به عنوان پیشوند به آن‌ها اضافه می‌کند. -s, --status نمایش افزودن، تغییر و حذف فایل‌ها. افزودن فایل با یک “+”، حذف با یک “-”، و تغییر با یک “!” مشخص می‌شود. -E, --empty-files-as-absent, --empty-files-as-removed به هنگام نمایش افزودن، تغییر و حذف فایل‌ها، فایل‌های خالی را به عنوان فایل ناموجود در نظر می‌گیرد. برای نمونه، فایلی با یک نسخهٔ قدیمی خالی و افزوده‌ها در نسخهٔ جدید، به جای یک تغییر (!)، به عنوان یک افزودن فایل (+) در نظر گرفته می‌شود. -iPATTERN, --include=PATTERN تنها فایل‌های منطبق با PATTERN را شامل می‌شود. -IFILE, --include-from-file=FILE تنها فایل‌های منطبق با الگوهای فهرست‌شده در FILE را شامل می‌شود (یک الگو در هر خط). -xPATTERN, --exclude=PATTERN فایل‌های منطبق با PATTERN را مستثنی می‌کند. -XFILE, --exclude-from-file=FILE فایل‌های منطبق با الگوهای فهرست‌شده در FILE را مستثنی می‌کند (یک الگو در هر خط). -z, --decompress استخراج و باز کردن فایل‌های فشرده با پسوندهای .gz و .bz2. -H, --with-filename چاپ نام فایل وصله‌ای که حاوی هر وصله است. -h, --no-filename عدم چاپ نام فایل وصله‌ای که حاوی هر وصله است. -v, --verbose خروجی با جزئیات بیشتر. --help نمایش یک پیام کوتاه دربارهٔ نحوهٔ استفاده. --version نمایش شماره نسخهٔ lsdiff. --filter در عوض، همانند filterdiff(1) رفتار می‌کند. --grep در عوض، همانند grepdiff(1) رفتار می‌کند. همچنین ببینید (SEE ALSO) filterdiff(1), grepdiff(1), patchview(1) مثال‌ها (EXAMPLES) برای مرتب‌سازی ترتیب فایل‌های تغییریافته در یک وصله، می‌توانید از دستور زیر استفاده کنید: lsdiff patch | sort -u | \ xargs -rn1 filterdiff patch -i برای نمایش تنها فایل‌های اضافه‌شده در یک وصله: lsdiff -s patch | grep '^+' | \ cut -c2- | xargs -rn1 filterdiff patch -i برای نمایش سرآیندهای تمامی قطعه‌های (hunks) فایل: lsdiff -n patch | (while read n file do sed -ne "$n,$(($n+1))p" patch done) نویسندگان (AUTHORS) Tim Waugh نگهدارندهٔ بسته patchutils 23 Jan 2009 LSDIFF(1)