diff یک ابزار استاندارد خط فرمان لینوکس است که به شما امکان می دهد تفاوت بین دو فایل را مقایسه کنید. در اینجا نحوه استفاده از آن به نفع خود آورده شده است.
آیا تا به حال دو فایل مشابه داشته اید و به این فکر کرده اید که کدام قسمت ها متفاوت هستند؟ آیا کد می نویسید و سعی می کنید بفهمید که چگونه تغییراتی را که شما یا برنامه نویس دیگری ایجاد کرده اید ترکیب کنید؟ یک ابزار استاندارد لینوکس به نام “diff” وجود دارد که به شما کمک می کند.
تفاوت چیست؟
diff ابزاری است که تفاوت های بین دو فایل متنی را نشان می دهد که نام آن از آنجا آمده است. این بخشی از استاندارد POSIX است، به این معنی که تقریباً در تمام سیستمهای مشابه یونیکس، از جمله لینوکس و همچنین macOS و سایر BSD ها وجود دارد.
اگر از یک توزیع اصلی لینوکس استفاده می کنید، به احتمال زیاد نسخه گنو را خواهید داشت. اگر از یک توزیع حداقلی لینوکس استفاده می کنید، ممکن است آن را به عنوان بخشی از کتابخانه BusyBox یا Toybox یا نسخه BSD اگر از سیستم BSD استفاده می کنید، داشته باشید. با بررسی صفحه راهنما می توانید ببینید کدام نسخه را دارید:
man diff
مقایسه دو فایل در لینوکس با تفاوت
برای مقایسه دو فایل متنی، به سادگی مسیر آنها را به عنوان آرگومان برای تفاوت ارسال کنید:
diff file1 file2
diff خطوطی را نشان می دهد که بین این دو در فایل متفاوت است. خطوط در فایل اول با یک “<" و خطوط در دوم با یک کاراکتر ">” پیش گفته می شوند. نمایشگرهای خروجی خطوط را تغییر داده، اضافه یا حذف کرده اند، از جمله تعداد خطوط تحت تأثیر کلی.
اگر خط اول را تغییر دهید، diff “1c1” را تولید می کند، که به معنای “شروع از خط 1، تغییر خط 1” است. در تفاوت، “a” مخفف “append”، “c” برای “تغییر” و “d” برای “حذف” است.
سایر ویژگی ها و گزینه های متفاوت
برای دیدن فایل ها در کنار هم از گزینه -y استفاده کنید:
diff -y file1 file2
گزینه -u یک چشم انداز “یکپارچه” با یک اسکریپت ویرایش برای ویرایشگر ویرایش ایجاد می کند تا تغییرات به طور خودکار انجام شوند.
قبل از اینکه سیستمهای کنترل نسخه توزیعشده مانند Git به طور گسترده مورد استفاده قرار گیرند، پروژههای منبع باز وصلههای این قالب را از طریق ایمیل درخواست میکردند و سپس آنها را با برنامه وصله در پایگاه کد اعمال میکردند.
اکنون می توانید فایل ها را در لینوکس با تفاوت مقایسه کنید
ابزار diff ممکن است مبهم به نظر برسد، اما دیدن تفاوتهای بین دو فایل مفید است، چه صرفاً فایلها را با هم مقایسه کنید یا وصلهها را به یک توسعهدهنده منبع باز ارسال کنید.
اگر از طرفداران ترمینال لینوکس نیستید، حتی نیازی به استفاده از خط فرمان برای مقایسه فایل ها یا حتی استفاده از دستگاه محلی خود ندارید. ابزارهای آنلاینی وجود دارد که به شما امکان می دهد فایل ها را در وب مقایسه کنید.