আমি জানি যে কীভাবে একটি খালি ফাইল তৈরি করতে হয়:
touch /var/tmp/nullbytes
তবে আমি কীভাবে একটি 1 এমবি ফাইল তৈরি করতে পারি যাতে ব্যাশ সহ কমান্ডলাইনে কেবল নলবাইট থাকে?
আমি জানি যে কীভাবে একটি খালি ফাইল তৈরি করতে হয়:
touch /var/tmp/nullbytes
তবে আমি কীভাবে একটি 1 এমবি ফাইল তৈরি করতে পারি যাতে ব্যাশ সহ কমান্ডলাইনে কেবল নলবাইট থাকে?
উত্তর:
জিএনইউ সহ truncate
:
truncate -s 1M nullbytes
(ধরে nullbytes
নিলাম আগে উপস্থিত ছিল না) একটি 1 মেগাবাইট স্পার ফাইল তৈরি করবে। এটি এমন একটি ফাইল যা শূন্যে ভরা প্রদর্শিত হবে তবে এটি ডিস্কে কোনও স্থান নেয় না।
ছাড়া truncate
, আপনি dd
পরিবর্তে ব্যবহার করতে পারেন :
dd bs=1048576 seek=1 of=nullbytes count=0
(কিছু dd
বাস্তবায়ন সহ, আপনি এর সাথে 1048576 প্রতিস্থাপন করতে পারেন 1M
)
আপনি যদি লিনাক্স এবং কিছু ফাইল সিস্টেমে ডিস্কের স্থান বরাদ্দ করতে চান তবে আপনি এটি করতে পারেন:
fallocate -l 1M nullbytes
এটি আসলে ডিস্কে ডেটা না লিখে স্থান বরাদ্দ করে (স্থানটি সংরক্ষিত তবে অবিরাম চিহ্নিত হিসাবে চিহ্নিত করা হয়)।
dd < /dev/zero bs=1048576 count=1 > nullbytes
আসলে ডিস্কে শূন্যগুলি লিখবে। এটি সবচেয়ে কম দক্ষ, তবে যদি সেই ফাইলটি অ্যাক্সেস করার সময় আপনার ড্রাইভগুলি স্পিন করার প্রয়োজন হয় তবে আপনি এটিই যেতে চাইবেন।
বা @ মাইকজার্ভের NU dd
বাইট তৈরির কৌশল সম্পর্কে কৌশল :
dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes
GNU এর সাথে একটি বিকল্প head
যা কোনও ব্লকের আকার নির্দিষ্ট করতে জড়িত না (1 এম ঠিক আছে তবে উদাহরণস্বরূপ 10 জি তা করবে না):
head -c 1M < /dev/zero > nullbytes
বা অগ্রগতি বার পেতে:
pv -Ss 1M < /dev/zero > nullbytes
truncate
অদলবদল ভলিউম হিসাবে খালি ফাইল তৈরি করার জন্য ব্যবহার করবেন না ... এটি কার্যকর হবে না! ব্যবহার করুন dd
পরিবর্তে এই ক্ষেত্রে।
dd
আমি যেমন দেখিয়েছি তেমন স্পার ফাইল তৈরি করতে পারে।
bs=1kx1k
। বা <&1 dd bs=1kx1k conv=sync,noerror count="$rpt" | cat >file
আক্ষরিক জন্য ডিস্ক জিনিস লিখুন। যদিও পড়ার ত্রুটি জোর করে কতটা দক্ষতা হারাতে পারে তার 100% নয়।