আমি এলোমেলো ডেটা সহ একটি ফাইল কীভাবে পপুলেট করতে পারি?


124

আমি কীভাবে একটি নতুন ফাইল তৈরি করতে পারি এবং এটিকে 1 গিগাবাইট মূল্য মূল্য র্যান্ডম ডেটা দিয়ে পূরণ করতে পারি? কিছু সফ্টওয়্যার পরীক্ষা করার জন্য আমার এটি দরকার।

আমি ব্যবহার করতে পছন্দ করি /dev/randomবা /dev/urandom


74
খুলুন viসঙ্গে vi -w randomfileএবং কেউ দেখেননি জিজ্ঞাস viপ্রোগ্রাম থেকে প্রস্থান করার জন্য। ;)
ওয়াইল্ডকার্ড

1
স্রেফ ফেসবুক পোস্ট থেকে উপরের মতামতটি লাইক করতে এসেছেন! facebook.com/ProgrammersCreateLife/photos/a.241809332534619/…
পরীক্ষিত

উত্তর:


171

সর্বাধিক বিযুক্তিতে:

head -c 1G </dev/urandom >myfile

যদি আপনি প্রত্যয়টি headবুঝতে না পারেন তবে Gআপনি আকারটি বাইটে নির্দিষ্ট করতে পারবেন:

head -c 1073741824 </dev/urandom >myfile

যদি আপনি বিকল্পটি headনা বুঝতে পারেন -c(এটি সাধারণ তবে পসিক্স নয়; আপনার সম্ভবত ওপেনবিএসডি রয়েছে):

dd bs=1024 count=1048576 </dev/urandom >myfile

/dev/randomলিনাক্স ব্যবহার করবেন না , ব্যবহার করুন /dev/urandom


1
এর মূল্য কী, headতা -cআমার সোলারিস 10 মেশিনে বুঝতে পারে না ।
রাহমু

2
আকর্ষণীয় যে headপড়তে পারে /dev/urandom, কিন্তু tailপারে না।
স্টিফান লাসিউইস্কি

21
@ স্টেফানলাসিউস্কি tailপ্রথমে ইনপুট ফাইলের শেষে যাওয়ার চেষ্টা করে, যা চিরকালের জন্য (আক্ষরিকভাবে) লাগে।
গিলস

আহ, 'লেজ / দেব / অনন্ত'-এর মতো, যদি এমন কোনও ডিভাইস থাকে।
স্টিফান লাসিউইস্কি

3
@ স্টেফানলাসিউস্কি আপনার পছন্দও আছে /dev/zero, যদি আপনি বিভিন্ন পছন্দ না করেন।
গিলস

35

অনুমান করা যে সিউডো-এলোমেলো তথ্য যথেষ্ট, dd if=/dev/urandom of=target-file bs=1M count=1000আপনি যা চান তা করবে।

dd (1) ইনপুট ফাইল থেকে ডেটাগুলির ব্লকগুলি পড়বে এবং এগুলি একটি আউটপুট ফাইলে লিখবে। কমান্ড লাইন ল্যাঙ্গুয়েজটি কিছুটা কৌতূহলযুক্ত, তবে এটি সেই মূল উপকরণগুলির মূল বিষয়গুলির দক্ষতা অর্জনের মধ্যে একটি is

এই ক্ষেত্রে ifইনপুট ফাইল হয়, of, আউটপুট ফাইল bs"ব্লক আকার" - এবং আমি আরো সুবিধামত আকার সেট করতে গনুহ এক্সটেনশন ব্যবহার করা হয়েছে। (আপনার যদি ddজিএনইউ এক্সটেনশন না থাকে তবে আপনি 1048576 টিও ব্যবহার countকরতে পারেন from ) পড়া ifএবং লিখতে ব্লকের সংখ্যা of

/dev/urandom/dev/randomলিনাক্সে বেকুয়েজের চেয়ে ভাল পছন্দ , সত্যিকারের এলোমেলো তথ্য শেষ হয়ে গেলে এটি ব্লক করার চেয়ে শক্তিশালী সিউডো-র্যান্ডম ডেটাতে ফিরে আসবে।

আপনি নিজে নিজে তৈরি না করে কিছু র্যান্ডম ডেটা পাওয়ার অন্য পথ হিসাবে http://www.random.org/ এ দেখতে চাইতে পারেন ।


3
একটি নোট - ইউনিট স্পেসিফিকেশন 1Mপ্রতিটি স্ট্যান্ডার্ড ddভেরিয়েন্টে উপলব্ধ নয় । যদি আপনার সংস্করণটি ddপ্রভাবিত হয় তবে ব্যবহার করুন bs=1048576
ক্রিস ডাউন

4
উদাহরণ কমান্ড প্রতিটি 1 এমবি আকারের 1,000,000 ব্লক গণনার একটি ফাইল তৈরি করবে। এটি প্রায় 1 টিবি (1 এম এক্স 1 এমবি), 1 জিবি নয় (যা 1K x 1MB হবে)। একদিকে যেমন, এক পর্যায়ে, ব্লকের আকার বাড়ানো এবং ব্লক গণনা হ্রাস করা নির্দিষ্ট পরিমাণ আউটপুট ডেটার জন্য আরও ভাল থ্রুপুট উপার্জন করতে ঝোঁক।
একটি সিভিএন

2
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee  5000kb

5MB এলোমেলো চরিত্রের ডেটা উত্পন্ন করতে এটি ব্যবহার করুন। আপনার যদি বিভিন্ন আকারের প্রয়োজন -cহয় তবে মাথার মান পরিবর্তন করুন, আউটফিলের নামটি পরিবর্তন করুন, সম্পাদন করুন এবং কার্যকর হওয়া শেষ না হওয়া পর্যন্ত অপেক্ষা করুন।

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