লিনাক্সের অধীনে দুটি অনুরূপ আকারের ফাইলগুলিতে আমি কীভাবে বাইনারি আলাদা করতে পারি?


37

আমার দুটি আকৃতির আকারের ফাইল রয়েছে এবং সেগুলি একই কিনা তা পরীক্ষা করার জন্য আমার কাছে বাইনারি ডিফ করতে হবে।

আমি বর্তমানে রান্নিগ diff file1.img file2.imgকিন্তু আমার 4 জিবি ফাইল প্রসেস করতে বেশ কিছুটা সময় নিচ্ছে। এটি কি এটি করার সবচেয়ে দক্ষ উপায়?

উত্তর:


45

cmpবাইনারি ফাইলগুলির মধ্যে পার্থক্য খুঁজতে ডিজাইন করা হয়েছে। আপনি চেকসামিং ( sum) চেষ্টা করতে পারেন এবং হ্যাশগুলির সাথে তুলনা করতে পারেন।


21

দুটি ফাইল অভিন্ন কিনা তা নির্ধারণের অন্যতম সাধারণ উপায় (তাদের আকারের মিলটি ধরে নিচ্ছে) কোনও ফাইলের একটি " হ্যাশ " (মূলত ফিঙ্গারপ্রিন্ট) তৈরি করতে একটি প্রোগ্রাম ব্যবহার করছে । সর্বাধিক সাধারণ md5sumএবং হয় sha1sum

উদাহরণ স্বরূপ:

$ md5sum file1 file2
e0e7485b678a538c2815132de7f9e878  file1
4a14aace18d472709ccae3910af55955  file2

আপনার যদি পরীক্ষা করতে হবে এমন অনেকগুলি ফাইল রয়েছে, উদাহরণস্বরূপ যদি আপনি একটি সিস্টেম থেকে অন্য সিস্টেমে ফাইলগুলি পূর্ণ একটি ডিরেক্টরি স্থানান্তর করে থাকেন তবে আপনি আউটপুটটিকে মূল সিস্টেম থেকে কোনও ফাইলে পুনর্নির্দেশ করতে পারেন, তারপরে md5sum/ sha1sumস্বয়ংক্রিয়ভাবে সেই ফাইলটি বলার জন্য ব্যবহার করতে পারবেন আপনি কোন ফাইল পৃথক:

$ md5sum file1 file2 > MD5SUMS
... copy file1, file2, MD5SUMS across
$ md5sum --check MD5SUMS
file1: OK
file2: OK

2
এমডি 5 সর্বদা এটির
জন কেজ

28
আসলে, MD5 হয় মৌলিক অখণ্ডতা চেক জন্য নির্ভরযোগ্য। এটি কেবল ক্রিপ্টোগ্রাফিক হিসাবে শক্তিশালী হিসাবে বিবেচিত হয় না যা আমরা একবার ভেবেছিলাম। আপনি যদি হ্যাকার সম্পর্কে উদ্বিগ্ন থাকেন তবে MD5 ব্যবহার করবেন না, তবে আপনি যদি কেবল সিডি থেকে অনুলিপি করা কিছু ফাইল দূষিত হয়ে পড়েছেন বা আপনার কম্পাইলার যদি প্রতিবার অভিন্ন ফাইলগুলি ছড়িয়ে দেয়, তা জানতে চাইলে এমডি 5 পর্যাপ্ত পরিমাণের চেয়ে বেশি।
অ্যাডাম বাটকিন


3

আমি শুধু জানতে, যদি তারা একই চান, আমি ব্যবহার করতে পছন্দ sha1sum যদি এটি উপলব্ধ হবে, বা MD5 একটি ফলব্যাক হিসাবে।

আমি যদি জানতে চাই যে তারা কতটা আলাদা, বা তারা কোথায় আলাদা, তবে অস্থায়ী ফাইলগুলি তৈরি করার জন্য ওড ('অক্টাল ডাম্প', যার সাধারণত একটি হেক্স বিকল্প রয়েছে) এর মাধ্যমে তাদের দু'টিকে ক্র্যাঙ্ক করা works


2
যদি আপনি এটি দুটি ফাইল একই কিনা তা জানতে চান তবে আমি মনে করি না যে এই ক্ষেত্রে sha1sum (বা md5sum) ব্যবহার করা কেবলমাত্র ভিন্নতার চেয়ে বেশি কার্যকর হতে পারে (যদিও এটি আসল প্রশ্ন ছিল), যদিও দুটি ( বড়) ফাইলগুলি একেবারে শুরুতে পৃথক হয়), আপনি উভয়ই ভিন্ন হয় তা জানার আগে পুরোপুরি পড়বেন।
পিয়েরে

@ পিয়ার বাট, হ্যাশিং এবং ক্রিপ্টো-সাইন ইন দূরবর্তী ডিভাইসগুলি জুড়ে কাজ করে।
ভাস্যনাভিকভ

1

আমি 100+ এমবি ফাইলের জন্য কিছু মানদণ্ড চালিয়েছি। ডিফ সবচেয়ে দ্রুত ছিল, যখন সিএমপি দ্বিতীয় ছিল এবং এমডি 5সাম ব্যবহার করে শেষ পর্যন্ত এসেছিল।

# time diff file1 file2; echo $?

real    0m0.122s
user    0m0.009s
sys 0m0.113s
0
# time cmp file1 file2; echo $?

real    0m0.213s
user    0m0.097s
sys     0m0.117s
0
# time md5sum file1 > /tmp/test; time md5sum file2 > /tmp/test2; diff /tmp/test /tmp/test2; echo $?

real    0m0.279s
user    0m0.211s
sys     0m0.066s

real    0m0.316s
user    0m0.225s
sys     0m0.073s
0

আমি একটি 4.3 জিবি ফাইল দিয়ে অনুশীলনটি পুনরায় চালু করেছি এবং র‌্যাম ক্যাচিংয়ের ফলে ফলাফলগুলি ব্যাপকভাবে প্রভাবিত হওয়ায় ফাইলটি ডিডি দিয়ে মুছতে এবং পুনরায় তৈরি করতে হয়েছিল।

$time diff file1 file2; echo $?

real    0m19.325s
user    0m0.995s
sys 0m5.280s
0

$time cmp file1 file2; echo $?

real    0m36.106s
user    0m4.399s
sys 0m6.147s
0

$time md5sum file1 > /tmp/test; time md5sum file2 > /tmp/test2; diff /tmp/test /tmp/test2; echo $?

real    0m10.441s
user    0m8.054s
sys 0m2.357s

real    0m24.682s
user    0m8.027s
sys 0m3.442s
0

এই ফলাফলগুলির উপর ভিত্তি করে আমি ফাইলগুলি একটি র‌্যামএফএস মাউন্টে স্থানান্তরিত করার এবং ডিফের সাথে স্টিক করার পরামর্শ দেব।


আমি পছন্দ করি আপনি আসলে একটি মানদণ্ড করেছিলেন, তবে 100 এমবি ওপির ক্ষেত্রে প্রতিনিধি নন। 1,000Mb আরও ভাল হবে।
jpaugh

1
আমি কয়েক মাস পরে 4.3 গিগ পরীক্ষা চালিয়েছি যার কারণে সম্মত হয়েছিল। এটি আসলে ওএস ক্যাচিংকে বাইপাস করার প্রচেষ্টা নিয়েছিল।
নিষেধ

আমি এটা কল্পনা। আপনার উত্তরের মাঝখানে পড়া না পড়ার জন্য আমি ক্ষমা চেয়ে নিচ্ছি। (আমি এখনও ভেবেছিলাম এটা যথেষ্ট ভাল ভোট দিন ছিল, এমনকি শুধু প্রথম বেঞ্চমার্ক এইজন্য যান।) FWIW, কিছু ব্যাপার কার্নেল যাদু ফাইল ক্যাশে অক্ষম জন্য। কোনটি আসলে কাজ করে বা প্রয়োজনীয় তা দেখার জন্য আমাকে নিজের বেঞ্চমার্কটি করতে হবে।
jpaugh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.