ডিরেক্টরিটির MD5 চেকসাম গণনা করুন


29

আমি ডিরেক্টরি সামগ্রীর তুলনা করার জন্য একটি দ্রুত উপায় খুঁজছি। একটি সম্পূর্ণ ডিরেক্টরি একটি md5sum (বা সমতুল্য চেকসাম) করা সম্ভব?

উবুন্টু লিনাক্স ব্যবহার করা


আপনি ডিরেক্টরিগুলি তুলনা করতে ডিফ ব্যবহার করে দেখতে চাইতে পারেন যা প্রকৃতপক্ষে আপনাকে দেখায় যে ডিরেক্টরিতে ভিন্নতা রয়েছে। unixtutorial.org/2008/06/how-to-compare-directories-in-unix
কিব্বি

@ কিব্বি তা প্রতিরোধ করতে আপনার প্রতিটি ফাইলের ডেটা সামগ্রী এবং আপনি কীভাবে ফাইলগুলি চেকসাম করেন তার বাইরে অন্য কিছু বিবেচনা করা উচিত। প্রদত্ত: [ চেকসামস ] 1. এ (ডিরেক্টরি) - ফাইল 1 [এবিসি] - ফাইল 2 [সিবিএ] 2. বি (ডিরেক্টরি) - ফাইল 1 [এবিসি] - বি 1 (ডিরেক্টরি) - ফাইল 2 [সিবিএ] 3. সি (ডিরেক্টরি) - ফাইল 4 [এবিসি] - File5 [সিবিএ] 4. ডি (directory) - file1 কপি [এবিসি] - File2 কপি [সিবিএ] নির্দেশিকা একজন এবং বি অভিন্ন যদিও তাঁরা একই ফাইল থাকতে হয় না (যদিও এ খ 1 , File2 একটি সাব ডিরেক্টরীতে থাকে) । আপনার উদাহরণের অধীনে, এবং সি এক হিসাবে বিবেচিত হবে কারণ
জ্যাকব লাইস

উত্তর:


36

অবশ্যই - md5sum directory/*

আপনার যদি আরও কিছু নমনীয় কিছু প্রয়োজন হয় (ডিরেক্টরিটি পুনরাবৃত্তি বা হ্যাশ তুলনা করার জন্য বলুন), এমডি 5 ডিপ চেষ্টা করুন।

apt-get install md5deep
md5deep -r directory

ডিরেক্টরি কাঠামোর তুলনা করতে, আপনি এটিকে তুলনা করার জন্য হ্যাশগুলির একটি তালিকা দিতে পারেন:

md5deep -r -s /directory1 > dir1hashes
md5deep -r -X dir1hashes /directory2

ডিরেক্টরি 1-এর সাথে মেলে না এমন ডিরেক্টরি 2-র সমস্ত ফাইল এটি আউটপুট দেয়।

এটি ডিরেক্টরি 1 থেকে সরানো ফাইলগুলি বা ডিরেক্টরি 2-এ যুক্ত হওয়া ফাইলগুলি প্রদর্শন করবে না।


আমি যা বোঝাতে চেয়েছি তা নয়, তবে আমি যা চেয়েছিলাম :) তা আমি পুনরাবৃত্তভাবে বলতে চাইছিলাম, এবং শেষে একটি হ্যাশ পেয়েছি, তবে আমি মনে করি এটি এমডি 5 ডিভিডি-এল এবং আউটপুট নিজেই হ্যাশিংয়ের মাধ্যমে করা যেতে পারে।
পফারফিশিশ

1
হ্যাশিংয়ের ক্রমটি সামঞ্জস্যপূর্ণ নয়, সুতরাং হ্যাশিংয়ের আগে আউটপুটটি বাছাই করতে হবে
pufferfish

1
একটি ডেটিমিনিস্টিক অর্ডার পেতে, -j0মাল্টিথ্রিডিং অক্ষম করে এমন ব্যবহার করুন (ম্যান পৃষ্ঠাটি দেখুন)।
জোহান

1
@ ShaneMadden ♦ আমি ইনস্টল md5deepসঙ্গে sudo apt-get install md5deepউপর Ubuntu 16.04কিন্তু যখন আমি মানুষ পৃষ্ঠাটি আমাকে বলে যে পড়তে চেষ্টা> md5deep জন্য কোনো ম্যানুয়াল এন্ট্রি
Kasun Siyambalapitiya

27

আপনি যদি দুটি ডিরেক্টরির মধ্যে পৃথক (যদি কিছু থাকে) দেখতে চান তবে, আরএসএনসি একটি ভাল ফিট।

rsync --archive --dry-run --checksum --verbose /source/directory/ /destination/directory

এটি যে কোনও ফাইলের তালিকা আলাদা করবে।


2
diff -qr /source/directory/ /destination/directory/পৃথক পৃথক ফাইল প্রদর্শন করবে।
কনারাক

চেকসামের পরিবর্তে কিছুটা দিকের তুলনা করার উপায় আছে কি? এটি স্থানীয় ড্রাইভে দ্রুত হতে পারে।
আলী

খুব সুন্দর. উত্স বা গন্তব্যগুলিও যদি দূরবর্তী ফোল্ডার হয় তবে কাজ করে যেমনusername@hostname:/destination/directory
থালিস কে।

11

আমি মনে করি আমি এই উত্তরটির আগে এই উত্তর দিয়েছি:

find . -xtype f -print0 | xargs -0 sha1sum | cut -b-40 | sort | sha1sum

দেয়: b1a5b654afee985d5daccd42d41e19b2877d66b1

ধারণাটি হ'ল আপনি সমস্ত ফাইল হ্যাশ প্রতি লাইনে একটি হ্যাশ কেটেছেন, তাদের বাছাই করুন এবং হ্যাশ যা একটি একক হ্যাশ দেয়। এটি ফাইলগুলির নামের উপর নির্ভর করে না।


5

Cfv আবেদন, বেশ দরকারী এটি শুধুমাত্র না পরীক্ষা ও MD5 চেকসাম তৈরি করতে পারেন, এটি CRC32, SHA1, জলস্রোত, সমাবস্থা, par2 করতে পারেন।

বর্তমান ডিরেক্টরিতে সমস্ত ফাইলের জন্য একটি সিআরসি 32 চেকসাম ফাইল তৈরি করতে:

সিএফভি -সি

বর্তমান ডিরেক্টরিতে সমস্ত ফাইলের জন্য MD5 চেকসাম ফাইল তৈরি করতে:

cfv -C -t md5 -f "বর্তমান ডিরেক্টরি.md5sums"

প্রতিটি উপ ডিরেক্টরি জন্য পৃথক চেকসাম ফাইল তৈরি করতে:

সিএফভি-সি-আর

সমস্ত উপ ডিরেক্টরিতে ফাইল যুক্ত একটি "সুপার" চেকসাম ফাইল তৈরি করতে:

cfv -C -rr

4

আমি হ্যাশদীপ ব্যবহার করেছি, যেমন এই জিজ্ঞাসুবুন্টু উত্তরে ব্যাখ্যা করা হয়েছে: অনুলিপি করা ফাইলগুলির যথার্থতা পরীক্ষা করুন :

চেকসামগুলি গণনা করতে:

 $ cd <directory1>
 $ hashdeep -rlc md5 . > ~/hashOutput.txt

পার্থক্যগুলি যাচাই করতে এবং তালিকাবদ্ধ করতে:

 $ cd <directory2>
 $ hashdeep -ravvl -k ~/hashOutput.txt .
 hashdeep: Audit passed
    Input files examined: 0
   Known files expecting: 0
           Files matched: 13770
 Files partially matched: 0
             Files moved: 0
         New files found: 0
   Known files not found: 0

এমডি 5 ডিপি-র উপরে এটির একটি সুবিধা রয়েছে যে এটি পুনর্নবীকরণ (স্থানান্তরিত), যুক্ত এবং মুছে ফেলা ফাইলগুলির পাশাপাশি http://www.meridiandiscovery.com/how- এর নীচে নির্দেশিত 0 দৈর্ঘ্যের ফাইলগুলির সমস্যা এড়ানো দেখায় will to / বৈধকরণ-অনুলিপি-ফলাফল-ব্যবহার-md5DP


3

এটি আমার পক্ষে কাজ করেছে: (আপনি যে ডিরেক্টরিটিতে আগ্রহী তিনি এটি চালাবেন)

md5deep -rl . | awk '{print $1}' | sort -n | md5sum

1

আপনি প্রতিটি একক ফাইলের এমডি 5 পরিমাণ তৈরি করতে পারেন, এই চেকসামগুলিকে বর্ণানুক্রমিক অর্ডার করতে এবং সেগুলিতে (নিউলাইন সহ বা ছাড়াই) রাখতে পারেন। যেহেতু MD5 ক্রিপ্টোগ্রাফিক, এটি হ্যাশগুলির হ্যাশগুলির সাথে ঠিক কাজ করা উচিত।

জিনিসগুলিতে একটি নির্দিষ্ট ক্রম থাকা উচিত, অন্যথায় আপনি সমান ডায়ারের জন্য বিভিন্ন ফলাফল পাবেন।

আর তুমি বিবেচনা করা উচিত যে এক Dir কিছু ফাইল যোগ করার সম্পূর্ণরূপে ফলাফলের পরিবর্তন করতে হবে, এমনকি যদি এটা শুধু একটা ছিল .directoryএর .DS_Storeফাইল।


প্রযুক্তিগতভাবে কেউ বিভিন্ন ডিরেক্টরিতে একই হ্যাশ পেতে পারে। দির এ-তে 'আব' এবং 'সি' বিষয়বস্তুযুক্ত 2 টি ফাইল রয়েছে এবং দির বিতে 'এ' এবং 'বিসি' বিষয়বস্তুযুক্ত 2 টি ফাইল রয়েছে তবে কেবলমাত্র ফাইলগুলিতে ডেটা হ্যাশ করলে একই ফলাফল পাওয়া যাবে, যদিও তাদের সাথে ফাইল রয়েছে বিভিন্ন বিষয়বস্তু। আমি নিশ্চিত না যে কেউ কীভাবে একটি ডিরেক্টরিতে MD5Sum সংজ্ঞায়িত করবে।
কিব্বি

1

একটি নির্দিষ্ট কেস হিসাবে, আসুন আপনাকে বলে দিন যে আপনি ডিরেক্টরি 1 থেকে ডিরেক্টরি 2 থেকে কিছু ফাইল অনুলিপি করতে চান এবং তারপরে আপনি এমডি 5 তুলনা ব্যবহার করে একটি সফল অনুলিপিটি যাচাই করতে চান।

প্রথম। ডিরেক্টরি 1 তে সিডি করুন এবং টাইপ করুন:

find -type f -exec md5sum "{}" \; > ~/Desktop/md5sum.txt

যা ডিরেক্টরি 1 এর প্রতিটি ফাইলের জন্য এমডি 5 যোগ করে একটি রেফারেন্স ফাইল তৈরি করবে। এটি হয়ে গেলে, আপনাকে যা করতে হবে তা ডিরেক্টরি 2 তে সিডি করতে হবে এবং টাইপ করুন:

md5sum -c ~/Desktop/md5sum.txt

প্রোগ্রাম md5sum md5sum.txt ফাইল থেকে প্রতিটি পাথ আনে, গন্তব্য ফোল্ডারে সেই ফাইলের md5sum গণনা করে এবং তারপরে এটি ফাইলের মধ্যে যোগ করা পরিমাণের সাথে তুলনা করে।

প্রক্রিয়াটি সমাপ্ত হওয়ার পরে, আপনি 'সুতরাং এবং এতগুলি ফাইলের সাথে মেলে না' বা এর মতো কোনও সংক্ষিপ্তসার পাবেন।



1

আমার ব্যাকআপ / আয়নাগুলির অখণ্ডতা যাচাই করার প্রয়োজন ছিল যা প্রচুর পরিমাণে ফাইল ধারণ করে এবং ম্যাস্যাশ নামে একটি কমান্ড-লাইন প্রোগ্রাম লিখে শেষ করে। এটি পাইথনে লেখা আছে। একটি জিটিকে + লঞ্চারও উপলব্ধ। আপনি এটি পরীক্ষা করে দেখতে চাইতে পারেন ...

http://code.google.com/p/masshash/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.