मैं 1 जीबी रैंडम फ़ाइल का उत्पादन करना चाहता था, इसलिए मैंने निम्नलिखित कमांड का उपयोग किया।
dd if=/dev/urandom of=output bs=1G count=1
लेकिन हर बार जब मैं इस कमांड को लॉन्च करता हूं तो मुझे एक 32 एमबी फाइल मिलती है:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
गलत क्या है?
संपादित करें:
इस विषय में महान जवाब के लिए धन्यवाद मैं समाधान के साथ आया जो 32 चंक्स 32 एमबी बड़े पढ़ता है जो 1 जीबी बनाता है:
dd if=/dev/urandom of=output bs=32M count=32
अन्य समाधान दिया गया था कि मेमोरी में 1 जीबी सीधे पढ़ता है और फिर डिस्क पर लिखता है। इस समाधान में बहुत अधिक मेमोरी होती है इसलिए यह पहले से मौजूद नहीं है:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
यह कार्य बिना उस -c
विकल्प के नहीं कर सकता जो POSIX में नहीं है । मुझे नहीं पता कि इसका कोई भी संस्करण cat
इसका समाधान कर सकता है। rsync
एक पूरी तरह से गैरमानक उपयोगिता है। वह न तो यहां nr है; अपने मैन पेज के माध्यम से स्किमिंग, मैं यह नहीं देखता कि यह इस समस्या को कैसे हल कर सकता है।
/dev/urandom
POSIX में नहीं है ...
dd
सभी के लिए कई वैध उपयोग के मामले हैं । मैं उपयोग करता हूँhead
,cat
याrsync
इसकी जगह पर लगभग हमेशा। और आपका सवाल है कि क्या कारणों में से एक विकल्प आमतौर पर सुरक्षित हैं।