كيفية استخدام ملفات Diff في Linux


Diff هي أداة سطر أوامر لأنظمة Unix تتيح لك مقارنة ملفين أو مجلدات ومعرفة الاختلافات بينهما. إنه مثالي لمقارنة الإصدارات القديمة والجديدة من الملفات لمعرفة ما تم تغييره. في هذه المقالة ، نوضح لك كيف يمكنك استخدام diff لمقارنة الملفات بسهولة في Linux.

نصيحة: تعرف على كيفية نسخ ولصق النصوص والملفات والمجلدات في محطة Linux.

مقارنة الملفات مع فرق

  1. افتح نافذة طرفية.
  1. يكتب diff والمسارات إلى ملفين ترغب في مقارنتهما. في هذه الحالة ، أقوم بمقارنة برنامجين صغيرين من نوع C على سطح المكتب باستخدام الأمر التالي:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
نافذة طرفية تعرض أمر فرق.
  1. يضعط يدخل لتقديم الأمر. ستظهر لك الشاشة الناتجة جميع الأسطر المختلفة بين الملفات. سيتم عرض أرقام الأسطر المقارنة على أنها “1c1” ، مما يعني أنه تم تغيير السطر الأول ، وتم العثور على الاختلافات التالية.
نافذة طرفية تعرض إخراج أمر فرق.
  1. لمشاهدة عرض جنبًا إلى جنب للملفات والاختلافات بينها ، استخدم ملحق -y العلم بعد diff. على سبيل المثال:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
تعرض نافذة طرفية أمرًا يطبع فرقًا مرئيًا.

أي سطر به رمز أنبوب ( | ) عبارة عن خط به فرق. فقط تأكد من توسيع النافذة الطرفية أولاً ، أو قد تواجه صعوبة في رؤية الشاشة.

نافذة طرفية تعرض إخراج أمر فرق مرئي.

جيد ان تعلم: تعرف على كيفية معالجة إخراج البرنامج باستخدام أنابيب Bash مع الأداة المساعدة sed القوية.

مقارنة الملفات مع Meld

وظائف diff يمكن الوصول إليها أيضًا من خلال Meld ، واجهة المستخدم الرسومية لـ diff. بالنظر إلى أن واجهة المستخدم الخاصة بـ diff يمكن أن يكون من الصعب التعامل معها ، فإن Meld هي أداة مفيدة.

  1. قم بتثبيت Meld من سطر الأوامر عن طريق فتح Terminal وكتابة:

أو

للتوزيعات المستندة إلى RPM.

سيؤدي هذا إلى تهيئة مدير الحزم المناسب والبدء في تثبيت Meld. نلاحظ أن -y سيقول العلم تلقائيًا “نعم” لأي مطالبات ؛ يرجى إزالته إذا كنت تفضل تأكيد هذه المطالبات يدويًا.

نافذة طرفية توضح أمر التثبيت الخاص بـ Meld.
  1. أدخل كلمة مرور المسؤول الخاصة بك عندما يُطلب منك ذلك. عندما ترى موجه الأوامر مرة أخرى ، ينتهي التثبيت ويمكن فتح Meld.
نافذة طرفية توضح عملية التثبيت لـ Meld.
  1. عند فتح Meld ، سترى ثلاثة خيارات: مقارنة الملفات ، ومقارنة الدليل وعرض التحكم في الإصدار. انقر فوق “ملف”.
لقطة شاشة لشاشة ترحيب Meld.
  1. ستظهر قائمتان منسدلتان ، كلتاهما تقرأ “(بلا)”. انقر فوق أحد لتحديد ملف للمقارنة.
لقطة شاشة لشاشة Meld مع تمييز على منتقي الملفات الأول.
  1. انقر فوق القائمة المنسدلة الأخرى لتحديد ملف ثانٍ للمقارنة.
لقطة شاشة لشاشة Meld مع تمييز في منتقي الملفات الثاني.
  1. انقر فوق الزر “مقارنة”.
لقطة شاشة لشاشة Meld مع تمييز على الزر
  1. تلخص النافذة التالية أي اختلافات موجودة بين ملفين. الأحرف الحمراء هي اختلافات ، وتشير الخلفية الزرقاء إلى وجود اختلاف في هذا الخط. تشير الخلفية الخضراء إلى وجود سطر في أحد الملفات وليس في الملف الآخر.
لقطة شاشة لبرنامج Meld مع عرض بسيط لمقارنة ملفين.
  1. للتنقل بين الاختلافات ، انقر فوق الزرين لأعلى ولأسفل في شريط القائمة. يمكنك أيضًا النقر فوق المستند مباشرةً باستخدام الماوس.
لقطة شاشة لبرنامج Meld تُبرز زر التنقل الخاص به.

جيد ان تعلم: إذا كنت تفضل استخدام الأدوات عبر الإنترنت لمقارنة الملفات ، فهذه بعض من أفضل أدوات مدقق الفرق عبر الإنترنت.

معالجة الملفات في Meld

بالإضافة إلى إجراء المقارنات ، يتيح لك Meld تغيير الملفات المقارنة. سيستمر Meld في تحليل المستند للتغييرات أثناء تعديل أي من الإصدارين ، ويمكنك الضغط على كنترول + ض في أي وقت للتراجع عن التغييرات.

  1. لنسخ التغييرات من ملف إلى آخر ، انقر فوق الأسهم السوداء الصغيرة بين التغييرات. سيؤدي النقر فوق السهم الموجود على الجانب الأيسر ، على سبيل المثال ، إلى استخدام سطر المستند الأيسر للكتابة فوق المستند الموجود على اليمين.
لقطة شاشة لبرنامج Meld تُظهر أزرار حل الاختلافات.
  1. يمكن أيضًا إدراج الخطوط في المستندات دون الكتابة فوقها. إذا قمت بالضغط باستمرار على كنترول المفتاح ، سترى الأسهم من الخطوة الأخيرة تتحول إلى علامات زائد. انقر فوق الرمز لفتح مربع حوار صغير حيث يمكنك اختيار مكان إدراج سطر جديد.
لقطة شاشة لبرنامج Meld تُظهر موجه إضافة الفرق الخاص به.
  1. أخيرًا ، اكتب مباشرةً في المستند الخاص بك. فقط أدخل المؤشر كما تفعل عادةً وابدأ في الكتابة.
  1. بمجرد الانتهاء من إجراء التغييرات ، انقر فوق الزر “حفظ” لحفظ ملفاتك.
لقطة شاشة لبرنامج Meld تُبرز زر الحفظ لكل ملف.

إنشاء ملفات فرق باستخدام Meld and diff

بصرف النظر عن إظهار الاختلافات بين ملفين ، يمكنك أيضًا استخدام Meld لإنشاء “ملفات مختلفة”. هذه أجزاء نصية صغيرة تحتوي على إرشادات حول كيفية تطبيق التغييرات من إصدار ملف إلى آخر. يكون هذا مفيدًا إذا كنت تريد توزيع تحديثات التعليمات البرمجية بسرعة دون إعادة مشاركة أرشيف المصدر بالكامل.

  1. افتح الملفين اللذين تريد مقارنتهما.
لقطة شاشة لبرنامج Meld تظهر فرق بسيط.
  1. انقر على قائمة الخيارات في الزاوية العلوية اليمنى من النافذة.
لقطة شاشة توضح زر خيارات Meld.
  1. حدد القائمة الفرعية “مقارنة”.
لقطة شاشة لقائمة خيارات Meld مع تسليط الضوء على قائمة المقارنة الفرعية.
  1. انقر فوق الخيار الفرعي “تنسيق كتصحيح”.
لقطة شاشة للقائمة الفرعية للمقارنة مع تمييز في خيار التنسيق الفرعي.
  1. سيؤدي هذا إلى فتح نافذة صغيرة حيث سيقوم Meld بطباعة ملف الفرق بأكمله بين الملفين. في هذه المرحلة ، يمكنك إما نسخ هذا النص إلى الحافظة الخاصة بك أو حفظه في ملف. للقيام بهذا الأخير ، انقر فوق الزر “حفظ التصحيح”.
لقطة شاشة لإطار Meld's Patch الفرعي مع تمييز على ملف "حفظ التصحيح" زر.

في حين أن إنشاء ملفات الاختلافات داخل Meld أمر بسيط ومباشر ، فهناك حالات قد لا يكون فيها من الممكن الوصول إلى واجهة المستخدم الرسومية أثناء تحرير الكود. لذلك ، يمكنك أيضًا استخدام ملف diff برنامج لتوليد ملف فرق.

  1. افتح Terminal وتحقق مما إذا كانت هناك اختلافات بين الملفين:
محطة عرض فرق بسيط بين ملفين.
  1. قم بإنشاء ملف فرق بسيط باستخدام ملحق -c علَم:
diff -c hello.c hello-1.c > hello.diff
محطة تعرض إخراج ملف فرق أساسي.
  1. اختياريا ، استخدم -u الخيار الذي يجمع بين دفقين من النص في كتلة فرق موحدة واحدة. يمكن أن يكون هذا مفيدًا إذا كنت تقوم بتغيير الكثير من التعليمات البرمجية وتريد توفير مساحة على القرص:
diff -u hello.c hello-1.c > hello.diff
محطة تعرض إخراج فرق موحد أكثر تعقيدًا.

استخدام ملفات فرق لتصحيح كود المصدر

كما تمت مناقشته أعلاه ، يتيح لك ملف الاختلافات إنشاء ملخص قابل للمشاركة بسهولة للتغييرات التي تم إجراؤها على التعليمات البرمجية المصدر. ومع ذلك ، لا يمكن تطبيق الاختلافات نفسها على الملفات الموجودة. للقيام بذلك ، استخدم البرنامج المرافق لـ diff ، patch.

  1. حدد كود المصدر الأصلي الذي يحاول ملف الفرق تغييره:
محطة تعرض رأس الملف المصدر الأصلي.
  1. قم بإنشاء نسخة احتياطية من شفرة المصدر الأصلية الخاصة بك:
  1. قم بتشغيل برنامج التصحيح بالملف الأصلي في الوسيطة الأولى وملف diff في الثاني:
محطة تعرض أمر تصحيح بسيط لملف مصدر واحد.

من المهم ملاحظة أن ملف فرق يمكن أن يحتوي أيضًا على تغييرات تمتد عبر ملفات متعددة. قم بتطبيق هذا عن طريق وضع جميع الملفات المطلوبة للتحديث في دليل واحد وتشغيله patch < multi-file.diff.

  1. تحقق مما إذا كان برنامج التصحيح قد قام بتحديث ملف المصدر الخاص بك بنجاح عن طريق مقارنته بالنسخة الاحتياطية:
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.

رمسيس أحمر
رمسيس أحمر

Ramces كاتب تقني عاش مع أجهزة الكمبيوتر طوال حياته. إنه قارئ غزير الإنتاج وطالب في الأنثروبولوجيا ، وهو شخصية غريبة الأطوار يكتب مقالات عن Linux وأي شيء * لا شىء.

اشترك في نشرتنا الإخبارية!

يتم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك

Previous post رئيس حزب التجمع: الحوار الوطنى كتب مصداقيته بدعوة الرئيس السيسى له
Next post المساعد السابق يشهد بأنها لم تصادفهم قط

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *