/ देव / शून्य का उद्देश्य?


49

मैंने कोशिश की cat /dev/zero, और यह कुछ भी करने के लिए प्रतीत नहीं हुआ। मैंने गुगली की /dev/zero, और यह कहता है कि यह मूल रूप से अनंत आकार वाली एक रिक्त फ़ाइल है। क्या catगैर-मौजूद वर्णों की अनंत संख्या को मुद्रित करना है? यह कैसे काम करता है? यदि यह 0 बाइट्स है तो यह अनंत डेटा कैसे प्रदान करता है? इस फ़ाइल के उपयोग क्या हैं, अगर कोई केवल एक खाली फ़ाइल बना सकता है?


11
भागो cat -v /dev/zeroको देखने के लिए यह क्या कर रहा है। एक सामान्य उद्देश्य के लिए शून्य (ext3, ext4) के साथ स्पष्ट अप्रयुक्त स्थान देखें ।
मैनटवर्क

वहाँ भी है / देव / अशक्त जो एक खाली फ़ाइल की तरह व्यवहार करता है यदि आप इसे पढ़ना चाहते हैं और एक ब्लैक होल के रूप में लिखते हैं।
जोफेल

@ जोफेल लेकिन आप अनंत 0-बिट्स के लिए / dev / null का उपयोग नहीं कर सकते, है ना? cat foo > /dev/nullऔर cat foo > /dev/zeroएक ही हैं, लेकिन cat /dev/nullऔर cat /dev/zeroसही ही नहीं हैं,?
tkbx

@tkbx हाँ, सही है। अगर कोई प्रोग्राम इससे पढ़ना चाहता है, तो /dev/nullतुरंत ईओएफ लौटाता है। /dev/zero0-बाइट्स असीम रूप से देता है।
जोफेल

जवाबों:


53

/dev/zeroएक विशेष फ़ाइल है (इस मामले में, एक छद्म उपकरण) जो अशक्त वर्णों की एक अंतहीन धारा प्रदान करता है (इसलिए हेक्स 00000)? इसलिए आपका catकुछ भी आउटपुट नहीं कर रहा है (लेकिन इसे od(ऑक्टल डंप) के माध्यम से चलाने की कोशिश करें )।

'अनंत आकार वाली रिक्त फ़ाइल' 100% सही नहीं है: यह एक नियमित फ़ाइल नहीं है, बल्कि एक विशेष फ़ाइल ('स्ट्रीम' या जनरेटर की तरह है)। आप इससे जितना चाहें पढ़ सकते हैं, उदाहरण के लिए dd(जैसे dd if=/dev/zero of=yourfile count=1024 bs=1024)।

यह वास्तव में एक रिक्त फ़ाइल नहीं है, और न ही रिक्त फ़ाइलों को बनाने के लिए उपयोग किया जाता है: इसका उपयोग केवल शून्य से भरी हुई फ़ाइलों या मेमोरी पेजों को बनाने के लिए किया जाता है। आप इसे लिख भी सकते हैं, इसे एक सिंकहोल की तरह प्रदर्शन कर सकते हैं (इसका अधिक लोकप्रिय भाई /dev/nullआमतौर पर इसके लिए अधिक उपयोग किया जाता है)।


कोई खाली स्थान क्यों भरना चाहेगा, हालाँकि?
tkbx

5
उदाहरण के लिए, जो पहले था, उसे मिटाने के लिए। या ट्रांसमिट करते समय।
कोनरक

4
मैंने srmमैनुअल या स्रोत नहीं पढ़ा है , लेकिन अधिकांश 'सुरक्षित इरेज़र्स' शून्य-ड्राइव के बजाय यादृच्छिक डेटा लिखना (छद्म-) लिखना पसंद करते हैं, क्योंकि शून्य-आईएनजी का एक पास पर्याप्त सुरक्षित नहीं है (कुछ तीन अक्षर वाली एजेंसियां अभी भी एक शून्य हार्डडिस्क की मूल सामग्री को घटा सकते हैं, क्योंकि व्यक्तिगत बिट्स 1 या 0 पर 100% सही मायने में नहीं हैं, लेकिन सिर्फ "ज्यादातर 1" या "ज्यादातर 0"। इसे एक लीवर से तुलना करें जिसे आप "सभी तरह से छोड़ सकते हैं"। "या" सभी तरह से सही ", लेकिन आम तौर पर बस एक तरफ से दूसरी तरफ पर्याप्त होता है।
कोनरक

11
@tkbx ddएक विभाजन के लिए कोशिश कर रहा है आप बाद में एक छोटी संपीड़ित फ़ाइल प्राप्त करने के लिए यादृच्छिक के बजाय सभी खाली स्थान को भरना चाहते हैं।
14

1
@Konerak मुझे उस पर काफी संदेह है। मैंने सुना है कि यह सभी जगह पर कहा गया है और मैंने कभी भी इसका प्रमाण नहीं देखा है कि किसी भी नए नए हार्डड्राइव पर संभव हो (पिछले 10 वर्षों में कम से कम)।
रॉब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.