2009-08-19 11 views
6

कोई नहीं जानता क्यों बीएसडी md5 कार्यक्रम इस प्रारूप में हैश उत्पादन का उत्पादन ...बीएसडी एमडी 5 बनाम जीएनयू md5sum आउटपुट प्रारूप?

MD5 (checksum.md5) = 9eb7a54d24dbf6a2eb9f7ce7a1853cd0 

... जबकि जीएनयू md5sum ज्यादा इस तरह के और अधिक समझदार प्रारूप उत्पादन होता है?

9eb7a54d24dbf6a2eb9f7ce7a1853cd0 checksum.md5 

जहां तक ​​मैं कह सकता हूं, md5sum प्रारूप पार्स करना और अधिक समझ में आता है। आप md5 के साथ md5sum -check कैसे करते हैं? और -p, -q, -r, -t, -x विकल्पों का क्या अर्थ है? man md5 उन विकल्पों के बारे में कुछ भी नहीं कहता है! : |

+0

या तो पावरुसर/सर्वरफॉल्ट पर जा सकता है लेकिन वास्तव में यहां नहीं है। – spender

+3

... या यह सुपरसियर है? मुझे कभी याद नहीं है – spender

+0

'md5 -r' कुछ उल्लेखनीय रूप से' md5sum' (चेकसम, फिर फ़ाइल नाम) के समान होगा। उदाहरण के लिए, 'ढूंढें। - प्रकार f -print0 | xargs -0 md5 -r' आपकी सभी फ़ाइलों के लिए md5 चेकसम सूचीबद्ध करता है। – Dave

उत्तर

4

ऐतिहासिक कारण, मुझे लगता है। इस बीच, -q suppress "MD5 (...) =" आउटपुट, इसलिए md5 -q checksum.md5

9eb7a54d24dbf6a2eb9f7ce7a1853cd0

यह इंगित किया गया है कि md5 को कोई तर्क नहीं दिया गया है और यह stdin से पढ़ता है। दुर्भाग्य से इस मामले में md5sum छोड़ देता है "-" चेकसम के पीछे ("9eb7a54d24dbf6a2eb9f7ce7a1853cd0 -"), ताकि आप चेकसम वापस जाने के लिए कुछ सामान्य कार्य के लिए देख रहे हैं, यहाँ क्या मदद कर सकता है है:

 
checksum() { 
     (md5sum <"$1"; test $? = 127 && md5 <"$1") | cut -d' ' -f1 
} 
checksum /etc/hosts 

FreeBSD के आदमी पेज तर्क के बारे में कहते हैं

 -p  Echo stdin to stdout and append the checksum to stdout.

-q  Quiet mode ‐ only the checksum is printed out. Overrides the -r 
     option. 

-r  Reverses the format of the output. This helps with visual diffs. 
     Does nothing when combined with the -ptx options. 

-t  Run a built‐in time trial. 

-x  Run a built‐in test script. 

0

एक जीएनयू md5sum -c checksum.md5 कि checksum फ़ाइल के लिए देखो और checksum.md5 फ़ाइल सामग्री के खिलाफ जाँच करेगा उपयोग कर सकते हैं।

system("md5sum -c checksum.md5 | grep \"checksum: OK\" -")

यह सही या गलत वापस आ जाएगी: एक रूबी सिस्टम कॉल के अंदर

md5sum -c checksum.md5 | grep "checksum: OK" -

उदाहरण एक बीएसडी के खिलाफ जांच करने के लिए .md5 फ़ाइल स्वरूपित।

2

मुझे एहसास है कि यह एक पुराना पृष्ठ है, लेकिन मैं फ्रीबीएसडी पर चेकसम बना रहा था और उन्हें लिनक्स पर देख रहा था और मैं भी इस पृष्ठ पर आया। यह पृष्ठ मुझे समस्या को हल करने में मदद नहीं किया, इसलिए मुझे लगता है कि लिनक्स md5sum उत्पादन से मेल FreeBSD पर चेकसम बनाने के लिए इस छोटे sed स्क्रिप्ट के साथ आया था:

md5 file [file ...] | sed -e 's#^MD5 [(]\(.*\)[)] = \(.*\)$#\2 \1#' > md5sums.txt 

यह FreeBSD md5 आदेश का उपयोग करें और पुन: व्यवस्थित होगा आउटपुट जीएनयू md5sum की तरह दिखने के लिए।

तो लिनक्स पर मैं तो बस का उपयोग md5sum --check md5sums.txt

तुम भी FreeBSD के md5 आदेश द्वारा उत्पादित किसी मौजूदा फ़ाइल के साथ ऊपर sed स्क्रिप्ट का उपयोग कर सकते हैं कर सकते हैं।

मैं अपने FreeBSD .cshrc फ़ाइल में इस उर्फ ​​डाल:

alias md5sum "md5 \!* | sed -e '"'s#MD5 [(]\(.*\)[)] = \(.*\)$#\2 \1#'"'" 

अब FreeBSD पर मैं सिर्फ md5sum file1 file2 file3 ... कह सकते हैं और यह सिर्फ काम करता है।

+0

सेड स्क्रिप्ट ने मुझे सेंटोस 6 पर जीएनयू एमडी 5 एसम की तुलना में एक कम जगह दी। एनबीडी, लेकिन "diff" थोड़ा सा मालिश किए बिना काम नहीं किया। –

3

वर्तमान ओएस एक्स बीएसडी सिस्टम पर आप अपेक्षित आउटपुट प्राप्त करने के लिए md5 -r कमांड निर्दिष्ट कर सकते हैं।

[email protected]:/vms/DevOps-v3.4$ md5 vmware* 
MD5 (vmware-0.log) = 61ba1d68a144023111539abee08f4044 
MD5 (vmware-1.log) = 97bc6f22b25833c3eca2b2cc40b83ecf 
MD5 (vmware-2.log) = f92a281102710c4528d4ceb88aa0ac9b 
MD5 (vmware.log) = 1f7858d361929d4bc5739931a075c0ad 

md5 -r स्विच अधिक उत्पादन देखो बनाया है कि मैं उम्मीद कर रहा था, और लिनक्स md5 रकम है कि एक Linux मशीन से उत्पादन किया गया था के साथ diff के लिए आसान जोड़ा जा रहा है।

[email protected]:/vms/DevOps-v3.4$ md5 -r vmware* 
61ba1d68a144023111539abee08f4044 vmware-0.log 
97bc6f22b25833c3eca2b2cc40b83ecf vmware-1.log 
f92a281102710c4528d4ceb88aa0ac9b vmware-2.log 
1f7858d361929d4bc5739931a075c0ad vmware.log 

यह मैं बनाने के लिए के लिए एक linux बॉक्स पर md5sum आदेश द्वारा उत्पन्न उत्पादन से diff के लिए आसान है सरल दृष्टिकोण था।

संबंधित मुद्दे