मैं निर्देशिका सामग्री की तुलना करने का एक त्वरित तरीका ढूंढ रहा हूं। क्या संपूर्ण निर्देशिका का md5sum (या समतुल्य चेकसम) करना संभव है?
उबंटू लिनक्स का उपयोग करना
मैं निर्देशिका सामग्री की तुलना करने का एक त्वरित तरीका ढूंढ रहा हूं। क्या संपूर्ण निर्देशिका का md5sum (या समतुल्य चेकसम) करना संभव है?
उबंटू लिनक्स का उपयोग करना
जवाबों:
ज़रूर - md5sum directory/*
यदि आपको कुछ अधिक लचीला चाहिए (कहते हैं, डायरेक्टरी रिकर्सन या हैश तुलना के लिए), तो md5deep देखें।
apt-get install md5deep
md5deep -r directory
निर्देशिका संरचना की तुलना करने के लिए, आप इसकी तुलना करने के लिए हैश की सूची दे सकते हैं:
md5deep -r -s /directory1 > dir1hashes
md5deep -r -X dir1hashes /directory2
यह डायरेक्टरी 2 की उन सभी फाइलों को आउटपुट करेगा जो डाइरेक्टरी 1 से मेल नहीं खाती हैं।
यह उन फ़ाइलों को नहीं दिखाएगा जिन्हें Directory1 से हटा दिया गया है या जो फ़ाइलें Directory2 में जोड़ दी गई हैं।
-j0
मल्टीथ्रेडिंग को अक्षम करें (मैन पेज देखें) का उपयोग करें।
md5deep
साथ स्थापित हुआ sudo apt-get install md5deep
, Ubuntu 16.04
लेकिन जब मैंने मैन पेज को पढ़ने की कोशिश की तो यह मुझे बताता है कि> md5deep के लिए कोई मैनुअल प्रविष्टि नहीं
यदि आप यह देखना चाहते हैं कि दो निर्देशिकाओं के बीच क्या अलग है (अगर कुछ भी), तो rsync एक अच्छा फिट होगा।
rsync --archive --dry-run --checksum --verbose /source/directory/ /destination/directory
यह उन फ़ाइलों को सूचीबद्ध करेगा जो अलग हैं।
diff -qr /source/directory/ /destination/directory/
अलग-अलग फ़ाइलों को भी दिखाएगा।
username@hostname:/destination/directory
मुझे लगता है कि मैंने इस उत्तर के साथ पहले इसका जवाब दिया:
find . -xtype f -print0 | xargs -0 sha1sum | cut -b-40 | sort | sha1sum
देता है: b1a5b654afee985d5daccd42d41e19b2877d66b1
विचार है कि आप हैश सभी फ़ाइलों को एक पंक्ति में हैश को काटते हैं, उन्हें क्रमबद्ध करते हैं और एक हैश का उपयोग करते हुए हैश करते हैं। यह फ़ाइलों के नाम पर निर्भर नहीं करता है।
CFV आवेदन, काफी उपयोगी यह केवल नहीं की जाँच करें और MD5 चेकसम बना सकते हैं, यह भी CRC32, SHA1, धार, बराबर, par2 कर सकते हैं।
वर्तमान निर्देशिका में सभी फ़ाइलों के लिए CRC32 चेकसम फ़ाइल बनाने के लिए:
सीएफवी -सी
वर्तमान निर्देशिका में सभी फ़ाइलों के लिए MD5 चेकसम फ़ाइल बनाने के लिए:
cfv -C -t md5 -f "करंट डायरेक्टरी.md5sums"
प्रत्येक उप निर्देशिका के लिए एक अलग चेकसम फ़ाइल बनाने के लिए:
cfv -C -r
सभी उप निर्देशिकाओं में फाइलें युक्त "सुपर" चेकसम फाइल बनाने के लिए:
cfv -C -rr
मैंने हैशदीप का इस्तेमाल किया, जैसा कि इस अस्क्यूबंटु उत्तर में बताया गया है: कॉपी की गई फाइलों की शुद्धता की जांच करें :
चेकसमों की गणना करने के लिए:
$ 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
इसमें md5deep पर एक फायदा है कि यह नामांकित (स्थानांतरित), जोड़ा, और हटाए गए फ़ाइलों को दिखाएगा, साथ ही साथ http://www.meridiandiscovery.com/how- के नीचे बताई गई 0 लंबाई फ़ाइलों के साथ समस्या से बचना होगा । / मान्य-कॉपी-परिणाम-उपयोग-md5deep के लिए ।
इसने मेरे लिए काम किया: (इसे उस समय तक चलाएं जब आप उस निर्देशिका में रुचि रखते हैं)
md5deep -rl . | awk '{print $1}' | sort -n | md5sum
आप प्रत्येक एकल फ़ाइलों के एमडी 5 रकम बना सकते हैं, इन चेकसमों को वर्णानुक्रम में क्रमबद्ध कर सकते हैं और उन्हें (साथ या बिना सुर्खियों के)। चूंकि एमडी 5 क्रिप्टोग्राफिक है, इसलिए इसे हैश की परत के साथ ठीक काम करना चाहिए।
चीजों के लिए एक निश्चित क्रम होना चाहिए, अन्यथा आपको बराबर अवधि के लिए अलग-अलग परिणाम मिलेंगे।
और तुम पर विचार करना चाहिए कि एक निर्देशिका करने के लिए कुछ फ़ाइल जोड़ने पूरी तरह से परिणाम बदल जाएगा, भले ही यह सिर्फ एक था .directory
की .DS_Store
फ़ाइल।
एक विशिष्ट मामले के रूप में, आपको निर्देशिका 1 से निर्देशिका 2 तक कुछ फ़ाइलों को कॉपी करने की अनुमति देता है और फिर आप md5 तुलना का उपयोग करके एक सफल प्रतिलिपि सत्यापित करना चाहते हैं।
प्रथम। सीडी 1 से डायरेक्टरी 1 और टाइप:
find -type f -exec md5sum "{}" \; > ~/Desktop/md5sum.txt
जो डायरेक्टरी 1 में प्रत्येक फाइल के लिए md5 योग वाली एक संदर्भ फ़ाइल बनाएगा। एक बार यह पूरा हो जाने के बाद, आपको निर्देशिका 2 और प्रकार:
md5sum -c ~/Desktop/md5sum.txt
प्रोग्राम md5sum md5sum.txt फ़ाइल से प्रत्येक पथ को प्राप्त करता है, गंतव्य फ़ोल्डर में उस फ़ाइल के md5sum की गणना करता है और फिर उस योग की तुलना करता है जिसे उसने फ़ाइल में संग्रहीत किया है।
प्रक्रिया पूरी होने के बाद, आपको एक सारांश मिलेगा जैसे 'तो और इतनी सारी फाइलें मेल नहीं खाती थीं' या ऐसा ही कुछ।
मुझे बैकअप / दर्पण की अखंडता की पुष्टि करने की आवश्यकता है, जिसमें बड़ी संख्या में फाइलें हैं और क्रैश-कमांड नामक एक कमांड-लाइन प्रोग्राम लिखना समाप्त कर दिया है। यह पायथन में लिखा गया है। एक जीटीके + लॉन्चर भी उपलब्ध है। इसे आज़माने की आपकी इच्छा हो सकती है...