Diff هي أداة سطر أوامر لأنظمة Unix تتيح لك مقارنة ملفين أو مجلدات ومعرفة الاختلافات بينهما. إنه مثالي لمقارنة الإصدارات القديمة والجديدة من الملفات لمعرفة ما تم تغييره. في هذه المقالة ، نوضح لك كيف يمكنك استخدام diff
لمقارنة الملفات بسهولة في Linux.
نصيحة: تعرف على كيفية نسخ ولصق النصوص والملفات والمجلدات في محطة Linux.
مقارنة الملفات مع فرق
- افتح نافذة طرفية.
- يكتب
diff
والمسارات إلى ملفين ترغب في مقارنتهما. في هذه الحالة ، أقوم بمقارنة برنامجين صغيرين من نوع C على سطح المكتب باستخدام الأمر التالي:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
- يضعط يدخل لتقديم الأمر. ستظهر لك الشاشة الناتجة جميع الأسطر المختلفة بين الملفات. سيتم عرض أرقام الأسطر المقارنة على أنها “1c1” ، مما يعني أنه تم تغيير السطر الأول ، وتم العثور على الاختلافات التالية.
- لمشاهدة عرض جنبًا إلى جنب للملفات والاختلافات بينها ، استخدم ملحق
-y
العلم بعدdiff
. على سبيل المثال:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
أي سطر به رمز أنبوب ( |
) عبارة عن خط به فرق. فقط تأكد من توسيع النافذة الطرفية أولاً ، أو قد تواجه صعوبة في رؤية الشاشة.
جيد ان تعلم: تعرف على كيفية معالجة إخراج البرنامج باستخدام أنابيب Bash مع الأداة المساعدة sed القوية.
مقارنة الملفات مع Meld
وظائف diff
يمكن الوصول إليها أيضًا من خلال Meld ، واجهة المستخدم الرسومية لـ diff
. بالنظر إلى أن واجهة المستخدم الخاصة بـ diff يمكن أن يكون من الصعب التعامل معها ، فإن Meld هي أداة مفيدة.
- قم بتثبيت Meld من سطر الأوامر عن طريق فتح Terminal وكتابة:
أو
للتوزيعات المستندة إلى RPM.
سيؤدي هذا إلى تهيئة مدير الحزم المناسب والبدء في تثبيت Meld. نلاحظ أن -y
سيقول العلم تلقائيًا “نعم” لأي مطالبات ؛ يرجى إزالته إذا كنت تفضل تأكيد هذه المطالبات يدويًا.
- أدخل كلمة مرور المسؤول الخاصة بك عندما يُطلب منك ذلك. عندما ترى موجه الأوامر مرة أخرى ، ينتهي التثبيت ويمكن فتح Meld.
- عند فتح Meld ، سترى ثلاثة خيارات: مقارنة الملفات ، ومقارنة الدليل وعرض التحكم في الإصدار. انقر فوق “ملف”.
- ستظهر قائمتان منسدلتان ، كلتاهما تقرأ “(بلا)”. انقر فوق أحد لتحديد ملف للمقارنة.
- انقر فوق القائمة المنسدلة الأخرى لتحديد ملف ثانٍ للمقارنة.
- انقر فوق الزر “مقارنة”.
- تلخص النافذة التالية أي اختلافات موجودة بين ملفين. الأحرف الحمراء هي اختلافات ، وتشير الخلفية الزرقاء إلى وجود اختلاف في هذا الخط. تشير الخلفية الخضراء إلى وجود سطر في أحد الملفات وليس في الملف الآخر.
- للتنقل بين الاختلافات ، انقر فوق الزرين لأعلى ولأسفل في شريط القائمة. يمكنك أيضًا النقر فوق المستند مباشرةً باستخدام الماوس.
جيد ان تعلم: إذا كنت تفضل استخدام الأدوات عبر الإنترنت لمقارنة الملفات ، فهذه بعض من أفضل أدوات مدقق الفرق عبر الإنترنت.
معالجة الملفات في Meld
بالإضافة إلى إجراء المقارنات ، يتيح لك Meld تغيير الملفات المقارنة. سيستمر Meld في تحليل المستند للتغييرات أثناء تعديل أي من الإصدارين ، ويمكنك الضغط على كنترول + ض في أي وقت للتراجع عن التغييرات.
- لنسخ التغييرات من ملف إلى آخر ، انقر فوق الأسهم السوداء الصغيرة بين التغييرات. سيؤدي النقر فوق السهم الموجود على الجانب الأيسر ، على سبيل المثال ، إلى استخدام سطر المستند الأيسر للكتابة فوق المستند الموجود على اليمين.
- يمكن أيضًا إدراج الخطوط في المستندات دون الكتابة فوقها. إذا قمت بالضغط باستمرار على كنترول المفتاح ، سترى الأسهم من الخطوة الأخيرة تتحول إلى علامات زائد. انقر فوق الرمز لفتح مربع حوار صغير حيث يمكنك اختيار مكان إدراج سطر جديد.
- أخيرًا ، اكتب مباشرةً في المستند الخاص بك. فقط أدخل المؤشر كما تفعل عادةً وابدأ في الكتابة.
- بمجرد الانتهاء من إجراء التغييرات ، انقر فوق الزر “حفظ” لحفظ ملفاتك.
إنشاء ملفات فرق باستخدام Meld and diff
بصرف النظر عن إظهار الاختلافات بين ملفين ، يمكنك أيضًا استخدام Meld لإنشاء “ملفات مختلفة”. هذه أجزاء نصية صغيرة تحتوي على إرشادات حول كيفية تطبيق التغييرات من إصدار ملف إلى آخر. يكون هذا مفيدًا إذا كنت تريد توزيع تحديثات التعليمات البرمجية بسرعة دون إعادة مشاركة أرشيف المصدر بالكامل.
- افتح الملفين اللذين تريد مقارنتهما.
- انقر على قائمة الخيارات في الزاوية العلوية اليمنى من النافذة.
- حدد القائمة الفرعية “مقارنة”.
- انقر فوق الخيار الفرعي “تنسيق كتصحيح”.
- سيؤدي هذا إلى فتح نافذة صغيرة حيث سيقوم Meld بطباعة ملف الفرق بأكمله بين الملفين. في هذه المرحلة ، يمكنك إما نسخ هذا النص إلى الحافظة الخاصة بك أو حفظه في ملف. للقيام بهذا الأخير ، انقر فوق الزر “حفظ التصحيح”.
في حين أن إنشاء ملفات الاختلافات داخل Meld أمر بسيط ومباشر ، فهناك حالات قد لا يكون فيها من الممكن الوصول إلى واجهة المستخدم الرسومية أثناء تحرير الكود. لذلك ، يمكنك أيضًا استخدام ملف diff
برنامج لتوليد ملف فرق.
- افتح Terminal وتحقق مما إذا كانت هناك اختلافات بين الملفين:
- قم بإنشاء ملف فرق بسيط باستخدام ملحق
-c
علَم:
diff -c hello.c hello-1.c > hello.diff
- اختياريا ، استخدم
-u
الخيار الذي يجمع بين دفقين من النص في كتلة فرق موحدة واحدة. يمكن أن يكون هذا مفيدًا إذا كنت تقوم بتغيير الكثير من التعليمات البرمجية وتريد توفير مساحة على القرص:
diff -u hello.c hello-1.c > hello.diff
استخدام ملفات فرق لتصحيح كود المصدر
كما تمت مناقشته أعلاه ، يتيح لك ملف الاختلافات إنشاء ملخص قابل للمشاركة بسهولة للتغييرات التي تم إجراؤها على التعليمات البرمجية المصدر. ومع ذلك ، لا يمكن تطبيق الاختلافات نفسها على الملفات الموجودة. للقيام بذلك ، استخدم البرنامج المرافق لـ diff ، patch
.
- حدد كود المصدر الأصلي الذي يحاول ملف الفرق تغييره:
- قم بإنشاء نسخة احتياطية من شفرة المصدر الأصلية الخاصة بك:
- قم بتشغيل برنامج التصحيح بالملف الأصلي في الوسيطة الأولى وملف diff في الثاني:
من المهم ملاحظة أن ملف فرق يمكن أن يحتوي أيضًا على تغييرات تمتد عبر ملفات متعددة. قم بتطبيق هذا عن طريق وضع جميع الملفات المطلوبة للتحديث في دليل واحد وتشغيله patch < multi-file.diff
.
- تحقق مما إذا كان برنامج التصحيح قد قام بتحديث ملف المصدر الخاص بك بنجاح عن طريق مقارنته بالنسخة الاحتياطية:
diff -y hello.c hello.c.old
لعِلمِكَ: Git هو برنامج قوي للتحكم في الإصدارات عبر الأنظمة الأساسية. تعرف على كيفية استخدامه لإدارة مستودعات كود المصدر في Linux.
أسئلة مكررة
هل من الممكن تصحيح ملف عدة مرات؟
نعم. ومع ذلك ، من المهم ملاحظة أن قيمة رقم السطر داخل ملف فرق ثابتة. على سبيل المثال ، سيؤدي تطبيق فرق يضيف خمسة أسطر من التعليمات البرمجية في السطر 1 إلى ضبط الملف بالكامل بخمسة أسطر. بينما يمكن للأدوات الحديثة تعويض التغييرات من الاختلافات الفردية ، فإن تطبيق أكثر من واحد يمكن أن يؤدي إلى تعارضات غير ضرورية في التعليمات البرمجية.
هل ملف diff مشابه لملف Git؟
نعم. يستخدم كل من diff و Git نوعًا مشابهًا من التنسيق لتصحيحات التعليمات البرمجية الخاصة بهما. نتيجة لذلك ، يمكنك تبادل هاتين الأداتين عند تطبيق التحديثات على كود المصدر الخاص بك. على سبيل المثال ، الجري git apply hello.diff
يعادل الجري patch < hello.diff
.
هل يمكنك استخدام Meld مع برنامج التحكم في الإصدارات مثل Git؟
نعم. واحدة من أقوى ميزات Meld هي أنه يمكن أن يعمل بشفافية مع أي برنامج للتحكم في الإصدار. يمنحك هذا القدرة على التفاعل بسهولة مع مستودعاتك خارج واجهة الجهاز.
للقيام بذلك ، اضغط على كنترول + ن، ثم انقر فوق الزر “عرض التحكم في الإصدار”. بعد ذلك ، انقر على المربع المنسدل الموجود أسفله وحدد “أخرى”. سيظهر هذا نافذة صغيرة حيث يمكنك رؤية وتحميل مستودع Git الخاص بك.
رصيد الصورة: Unsplash. جميع لقطات الشاشة بواسطة Ramces Red.
اشترك في نشرتنا الإخبارية!
يتم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك
اكتشاف المزيد من ينبوع المعرفة
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.