اثنين من الملفات يونكس مقارنة - ثنائي - خيارات
أعتقد أنك يمكن أن تذهب باستخدام 3 أدوات: سمب هو أفضل للملفات الثنائية و ديف هو أفضل لملفات نصية الملفات الثنائية ديف مجرد تقارير عما إذا كانت تختلف لا. يعمل ديف أيضا للدلائل. أي من الأولين يمكن أن يحقق ما تحتاجه بصمت. يستخدم ديف التبديل - q و سمب يستخدم التبديل - S لاقول لكم فقط رمز العودة: 0 إذا كان الملفان تطابق 1 إذا لم يكن. سمب لديه أيضا خيار لطيف لتجنب (نوع من) قراءة الملف بأكمله (جيد إذا كان لديك ملفات كبيرة): إذا كنت تعرف أن الملفات يمكن أن تختلف في خطوط N الأولى أو بين خط N و M هل يمكن أن تفعل (أي ل صف N 10 و M 20): أضفت md5sum إلى القائمة لأنه إذا كان لديك فرصة لحساب المجموع الاختباري MD5 في كل مرة تقوم بتحرير واحد من تلك الملفات، ثم يمكنك مقارنة فقط أن العثور بسرعة إذا كانت مطابقة أم لا. في هذه الحالة افترض أن لديك الكثير من الملفات للمقارنة. أجاب 25 أكتوبر في 9: 231.7 الملفات الثنائية ومقارنات النص القسري إذا كان ديف يعتقد أن أي من اثنين من الملفات التي يقارن هو ثنائي (ملف غير نصي)، فإنه يعامل عادة هذا الزوج من الملفات كما لو كان تنسيق الإخراج ملخص (انظر موجز)، وتقارير فقط أن الملفات الثنائية مختلفة. ويرجع ذلك إلى أن مقارنات سطر الخط عادة لا تكون ذات مغزى للملفات الثنائية. هذا لا يعول على أنها مشكلة، على الرغم من أن الناتج الناتج لا التقاط جميع الاختلافات. ديف يحدد ما إذا كان الملف هو نص أو ثنائي عن طريق التحقق من البايتات القليلة الأولى في الملف العدد الدقيق للبايتات يعتمد النظام، ولكن عادة ما يكون عدة آلاف. إذا كان كل بايت في هذا الجزء من الملف غير فارغ، يعتبر الملف أن يكون النص خلاف ذلك يعتبر الملف ثنائي. في بعض الأحيان قد ترغب في فرض فرق للنظر في الملفات لتكون نص. على سبيل المثال، قد تكون مقارنة الملفات النصية التي تحتوي على أحرف فارغة ديف قد تقرر خطأ أن تلك هي الملفات غير النصية. أو قد تتم مقارنة المستندات التي تكون بتنسيق يستخدمه نظام معالجة النصوص الذي يستخدم الأحرف الفارغة للإشارة إلى تنسيق خاص. يمكنك فرض فرق للنظر في جميع الملفات لتكون ملفات نصية، ومقارنتها سطرا سطرا، وذلك باستخدام الخيار --text (-a). إذا كانت الملفات التي تقارنها باستخدام هذا الخيار لا تحتوي في الواقع على نص، فمن المحتمل أن تحتوي على عدد قليل من الأحرف الجديدة، وسوف يتكون الإخراج ديف من الكتل تظهر الاختلافات بين الخطوط الطويلة من أي الأحرف التي تحتوي على الملفات. يمكنك أيضا فرض فرق لتقرير ما إذا كانت الملفات تختلف (ولكن ليس كيف). استخدم الخيار --brief (-q) لهذا. في أنظمة التشغيل التي تميز بين النص والملفات الثنائية، يقرأ عادة ويكتب جميع البيانات كنص. استخدام الخيار --binary لفرض فرق لقراءة وكتابة البيانات الثنائية بدلا من ذلك. هذا الخيار ليس له أي تأثير على نظام بوسيكس-كومبليانت مثل غنو أو يونكس التقليدية. ومع ذلك، فإن العديد من أنظمة تشغيل الكمبيوتر الشخصية تمثل نهاية السطر مع عودة النقل متبوعا بخط جديد. وفي مثل هذه الأنظمة، يتجاهل الشكل عادة عوائد النقل هذه على المدخلات ويولدها في نهاية كل خط من خطوط الإخراج، ولكن يعامل الاختلاف بين الخيارين كل عائد كحرف إدخال آخر فقط، ولا يولد عائد نقل عند نهاية كل خط الانتاج. يمكن أن يكون هذا مفيدا عند التعامل مع الملفات غير النصية التي من المفترض أن تكون متبادلة مع الأنظمة المتوافقة مع بوسيكس. وتؤدي الأسباب --strip-ترايلينغ-كر إلى معالجة خطوط الإدخال التي تنتهي في عودة النقل متبوعة بالخط الجديد كما لو أنها تنتهي في خط جديد عادي. يمكن أن يكون هذا مفيدا عند مقارنة النص الذي يتم استيراده بشكل كامل من العديد من أنظمة تشغيل الكمبيوتر الشخصي. يؤثر هذا الخيار على كيفية قراءة الخطوط، مما يؤثر بدوره على كيفية مقارنتها وإخراجها. إذا كنت ترغب في مقارنة بايت الملفات اثنين بايت، يمكنك استخدام برنامج سمب مع --verbose (-l) الخيار لإظهار قيم كل بايت مختلفة في الملفين. مع غنو سمب. يمكنك أيضا استخدام الخيار - b أو --print-بايت لإظهار تمثيل أسي لتلك البايتات. انظر استدعاء سمب. للمزيد من المعلومات. إذا اعتقد الفرق 3 أن أي من الملفات التي يقارنها هو ثنائي (ملف غير نصي)، فإنه عادة ما يبلغ عن خطأ، لأن هذه المقارنات عادة لا تكون مفيدة. يستخدم divf3 نفس الاختبار كما ديف لتحديد ما إذا كان الملف ثنائي. كما هو الحال مع فرق. إذا كانت ملفات الإدخال تحتوي على عدد قليل من وحدات البايت غير نصية ولكن على خلاف ذلك مثل الملفات النصية، يمكنك فرض diff3 للنظر في جميع الملفات لتكون ملفات نصية ومقارنتها سطرا سطرا باستخدام الخيار أو - text. One من والطرق الأكثر شيوعا لتحديد ما إذا كان ملفين متطابقة (على افتراض أحجامها تطابق) يستخدم برنامج لإنشاء تجزئة (أساسا بصمة) من ملف. الأكثر شيوعا هي md5sum و sha1sum. إذا كان لديك العديد من الملفات التي تحتاج إلى التحقق منها، على سبيل المثال إذا كنت تقوم بنقل دليل كامل من الملفات من نظام إلى آخر، يمكنك إعادة توجيه الإخراج من النظام الأصلي إلى ملف، ثم يمكن shdsumsumsumsumum5 تلقائيا استخدام هذا الملف إلى اقول لكم الملفات التي هي مختلفة: أجاب أبريل 29 10 في 12:21 MD5 ليست دائما موثوقة لهذا: ديغزكوريتيهليب ندش جون كيج أبر 29 10 في 12:30 في الواقع، MD5 هو موثوق بها لشيكات السلامة الأساسية. انها مجرد 39n تعتبر قوة تشفيرية كما كنا نعتقد مرة واحدة. إذا كنت قلقا بشأن المتسللين، don39t استخدام MD5، ولكن إذا كنت ترغب فقط في معرفة ما إذا كان بعض الملفات التي تم نسخها من قرص مضغوط تالفة، أو إذا مترجم الخاص بك يبصق ملفات متطابقة في كل مرة، MD5 هو أكثر من كافية. نداش آدم باتكين 29 أبريل 10 الساعة 12: 55 أنا أفضل فبينديف. ديكس يستخدم وحدة المعالجة المركزية حتى عندما تسكع، وأعتقد أن it39s إعادة رسم في كل وقت أو شيء من هذا. فبينديف لا يعمل مع محطات واسعة على الرغم من. ولكن العناوين تصبح غريبة مع محطات واسعة على أي حال، لأن لديك أكثر من 16 بايت لكل صف. نادش جانوس ترويلسن 17 أكتوبر 12 في 14:22 حاول ديف في تركيبة التالية من زشباش عملية الاستبدال و كولورديف في كلي: - y يظهر لك الاختلافات جنبا إلى جنب (اختياري) زكسد هو أداة كلي لإنشاء إخراج هيكسدومب من ثنائي ملف كولورديف تلوين الإخراج ديف (تثبيت عن طريق: سودو الرابطة بين الحصول على تثبيت كولورديف) إضافة - W200 إلى ديف لإخراج أوسع إذا الملفات هي كبيرة، إضافة حد (على سبيل المثال - l1000) لكل زكسد الأسلوب الذي يعمل على حذف بايت بالإضافة الإخراج ل إزالة بايت نول واحدة في بايت 100 من ملف كبير: إذا كنت تريد أيضا أن ترى النسخة أسي من الحرف: اختبارها على أوبونتو 14.04. أنا أفضل أود على زكسد لأنه: هو بوسيكس. زكسد ليس (يأتي مع فيم) لديه - A لإزالة العمود عنوان دون أوك. - إزالة عمود العنوان. هذا أمر مهم خلاف ذلك جميع الخطوط سوف تختلف بعد إزالة إضافة البايت. - w1 يضع بايت واحد في كل سطر، بحيث ديف يمكن أن تستهلك ذلك. فمن الأهمية بمكان أن يكون بايت واحد في كل سطر، وإلا كل سطر بعد الحذف سوف تصبح من مرحلة وتختلف. لسوء الحظ، هذا ليس بوسيكس، ولكن موجود في جنو. - tx1 هو التمثيل الذي تريده، وتغيير إلى أي قيمة ممكنة، طالما كنت تبقي 1 بايت في كل سطر. - v يمنع اختصار التكرار النجمة التي قد تتداخل مع لصق ديف - d - - ينضم كل سطرين. نحن في حاجة إليها لأن عرافة و أسي تذهب إلى خطوط المجاورة منفصلة. مأخوذة من: stackoverflowquestions8987257concatenating-كل-سطر-مع-القادم نستخدم الأقواس () لتعريف بدف بدلا من الحد من نطاق الدالة الداخلية و. انظر أيضا: stackoverflowquestions8426077how-تو-ديفين-a-فونكتيون-إنزيد-أنوذر-فونكتيون-إن-باش أجاب أبريل 4 15 في 20:31 عند استخدام هكسدومبس والنص ديف لمقارنة الملفات الثنائية، وخاصة زسد. تصبح الإضافات وعمليات الإزالة للبايتات تحولات في المعالجة التي قد تجعل من الصعب رؤيتها. تخبر هذه الطريقة زسد إلى عدم إخراج عناوين، وإخراج بايت واحد فقط في كل سطر، والذي بدوره يظهر بالضبط أي وحدات البايت تم تغييرها أو إضافتها أو إزالتها. يمكنك العثور على العناوين في وقت لاحق من خلال البحث عن تسلسل مثيرة للاهتمام من بايت في هيكسدومب أكثر طبيعية (إخراج xxd first. bin). أجابيد أبر 22 15 في 12:10
Comments
Post a Comment