একটি নির্দিষ্ট আকারের ফাইল উত্পন্ন?


106

আমি নামের সাথে একটি ফাইল তৈরি করতে চাই example.file। আমি ব্যবহার করতে পারে

touch example.file

তবে আমি ফাইলটি আকারের 24MB হতে চাই। আমি ইতিমধ্যে স্পর্শের ম্যানপেজটি যাচাই করেছি, তবে এর মতো কোনও পরামিতি নেই। নির্দিষ্ট আকারের ফাইলগুলি উত্পন্ন করার জন্য কি সহজ উপায় আছে?



আমরা সকলে ধরে নেব যে আপনার কী যত্ন নেই সেগুলিতে কী জিরোতে পূর্ণ হয়েছে তা ঠিক থাকবে।
বিগস

উত্তর:


136

আপনি ডিডি ব্যবহার করতে পারেন:

dd if=/dev/zero of=output.dat  bs=24M  count=1

অথবা

dd if=/dev/zero of=output.dat  bs=1M  count=24

বা, ম্যাক এ,

dd if=/dev/zero of=output.dat  bs=1m  count=24

2
... বা বিএস = 1 এম এবং গণনা = 24 ব্যবহার করুন। অনেকের কাছে এটি পড়া সুন্দর এবং সহজ মনে হয়।
বিগস

3
বিশাল ব্লকের আকারগুলি ব্যবহার করবেন না, আমার সিস্টেমটি পছন্দ করেনিbs=1G count=1
থারস্ম্মোনার

10
ম্যাকের জন্য, 24 মি (ছোট মি) ব্যবহার করুন, কারণ ম্যাক বড় এম পছন্দ করে নাdd if=/dev/zero of=output.dat bs=24m count=1
SPRBRN

1
অ্যান্ড্রয়েডে (5.1.1, সংস্করণ বা ফোন নির্দিষ্ট হতে পারে) (আমাকে নাও হতে পারে) আমাকেও একটি ছোট হাতের ব্যবহার mকরতে হয়েছিল।
এরিক

1
বিশেষত বড় ব্লক মাপের সমস্যা কী? আমি 1 জি ফাইলের জন্য 1 জি ব্লক আকার ব্যবহার করার আশা করেছিলাম।
felwithe

43

এম্বেডড লিনাক্স বা সাইগউইন (বা জিএনইউ কোর্টিলস সহ কোনও সিস্টেম) এবং ফ্রিবিএসডি এর অধীন:

truncate -s 24m example.file

এটি নাল বাইটে পূর্ণ একটি ফাইল তৈরি করে। যদি ফাইলটি ইতিমধ্যে বিদ্যমান এবং ছোট হয় তবে এটি নাল বাইটের সাথে অনুরোধ করা আকারে প্রসারিত করা হয়। যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে এবং বড় হয় তবে এটি অনুরোধ করা আকারে কাটা হয়।

নাল বাইটগুলি কোনও ডিস্কের জায়গা গ্রাস করে না, ফাইলটি একটি বিচ্ছিন্ন ফাইল

অনেক সিস্টেমে head -c 24m </dev/zero >example.fileনাল বাইটে পূর্ণ একটি অ-স্পার্স ফাইল তৈরি করে। যদি আপনার সিস্টেমে headকোনও -cবিকল্প না থাকে (এটি সাধারণ তবে পসিক্সে নয়) তবে আপনি তার dd bs=1024k count=24 </dev/zero >example.fileপরিবর্তে ব্যবহার করতে পারেন (এটি পসিক্স-সম্মতিযুক্ত)।


ব্যাসিবক্সে এটিও রয়েছে , তাই বেশিরভাগ এম্বেড থাকা সিস্টেমগুলিও এটি করবে :-)
সিরো সান্তিলি 事件 '中心 法轮功 六四 事件

29

আপনি যদি ফাইলটির বিষয়বস্তু সম্পর্কে চিন্তা না করেন তবে এটি ব্যবহারের চেয়ে অনেক দ্রুত dd:

fallocate -l 24M filename

স্পষ্টতই, dd24MB ফাইলের জন্য ব্যবহার করা কোনও আধুনিক সিস্টেমে কোনও সময় নেয় না, তবে বড় ফাইলগুলি ধীরে ধীরে ধীর হতে পারে।


13

আপনি ডিডি ব্যবহার করতে পারেন:

ডিডি if = / dev / শূন্য = আউটপুটফিল.আউট বিএস = 1024 কে গণনা = 24

অথবা আপনি যদি সোলারিস ব্যবহার করছেন

mkfile 24m outputfile.out

3
মেকফাইল ম্যাকওএস-তে খুব উপস্থিত রয়েছে বলে মনে হচ্ছে
বেন ফ্লিন

আপনি -nএকটি বিচ্ছিন্ন ফাইল তৈরি করতেও পাস করতে পারেন
রাশবিশপ

0
FROM_NODE=N01;
echo; cd $MOUNT_PATH; pwd; ls -la; sleep 1; echo;
WHEN="$(date +%Y-%m-%d_%H-%M-%S)";
fallocate -l 10M $MOUNT_PATH/"$FROM_NODE"_"$WHEN".dump
ls -lha; echo;

1
প্রশ্নটি 24 জিজ্ঞাসা করার সময় এটি কি 10 মেগ বলে না?
জেফ শ্যাচালার

2
fallocateএকটি ভাল উত্তর হতে পারে, কিন্তু অন্য সব লাইন কেন? আপনার উত্তরটি কেটে ফেলুন যাতে এটি যা চাওয়া হয় ঠিক তেমন করে এবং আরও কিছু না।
জিগ্লিগনাগ

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