একটি ইচ্ছামত বৃহত "জাল" ফাইল তৈরি করা


16

আমি এর অনুরূপ /dev/nullবা একটি বিশেষ ফাইল তৈরি করতে চাই /dev/randomযেখানে ফাইলটি আসলে বিদ্যমান নেই তবে আপনি এটি থেকে সমস্ত একইভাবে পড়তে পারেন, কেবলমাত্র আমি ফাইলটির আপাত আকারের উপর একটি ক্যাপ সেট করতে পারি।

এটি অন্য উপায়ে রাখতে, আমি একটি বিশেষ ফাইল তৈরি করতে চাই যেখানে (আমি ধরে নিই যে আমি ক্যাপটি 500 গিগাবাইটে সেট করেছি) যখন আমি "বিড়াল" করব তখন ফাইলটি সমস্ত 500 গিগাবাইট ফাইলটি আউটপুট দেবে এবং তারপরে থামবে। এটি একটি আসল 500 গিগাবাইট ফাইলের মতোই কাজ করা প্রয়োজন, তবে জায়গা না নিয়েই। এই ফাইলের বিষয়বস্তুগুলির কোনও বিষয় নেই, এটি \0সমস্তর মতো হতে পারে /dev/nullবা কেবল একটি ছোট স্ট্রিং বার বার প্রেরণ করা হচ্ছে বা যা কিছু হোক।

এটি কি এমন কিছু যা করতে সক্ষম? দূরবর্তী অবস্থানের একমাত্র জিনিসটি আমি খুঁজে পেতে সক্ষম হয়েছি ম্যান পৃষ্ঠাগুলি সম্পর্কে কথা বলছে mknod, তবে সেগুলি খুব বেশি সহায়ক ছিল না।

উত্তর:


17

আপনি নির্দিষ্ট ফাইল সিস্টেমে একটি স্পার ফাইল তৈরি করতে পারেন যা একটি নির্দিষ্ট আকার হিসাবে প্রদর্শিত হবে , তবে আসলে এটি ডিস্কে তেমন স্থান ব্যবহার করবে না ।

$ dd if=/dev/null of=sparse bs=1024 count=1 seek=524288000
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.4444e-05 s, 0.0 kB/s
$ ls -l sparse 
-rw-rw-r--. 1 ignacio ignacio 536870912000 May  9 22:25 sparse
$ du -h sparse
0   sparse

এটি পুরোপুরি কাজ করে। সেরা ক্ষেত্রে আমি একটি সমাধানের আশা করছিলাম যেখানে আমি আউটপুটটি কী তা আসলে স্ক্রিপ্ট করতে পারতাম (যেমন, প্রতিটি সন্ধান পজিশনের জন্য আপনি তথ্যের দিকে তাকান সেই অবস্থানের একটি হ্যাশ বা সেই লাইনগুলির পাশাপাশি কিছু থাকবে) তবে এটি বেশ সুন্দর ছিল out আছে। এটি অবশ্যই আপাতত কাজ করে, ধন্যবাদ!
মিডিয়োক্রে গোফার

1
@MediocreGopher, আপনি অবশ্যই যে সঙ্গে ভালো কিছু করতে পারে ফিউজ
সিজেএম

1

ইতিমধ্যে উল্লেখযোগ্য কিছু ইউনিক্সের পোর্টেবল ডিডি / সন্ধান ভিত্তিক সমাধানের বাইরে কিছু বিশেষ কমান্ড রয়েছে:

কমপক্ষে সোলারিস , ম্যাকোএস / এক্স এবং আইরিক্সে :

mkfile -n 500m sparseFile

এইচপি-ইউএক্স উপর prealloc ,, AIX lmktemp উপর। এবং অনেকগুলি লিনাক্স ডিস্ট্রিবিউশনের ছাঁটাই হয়েছে


1

আপনার যদি ফাইলটি ফিরে চাওয়ার প্রয়োজন না হয় তবে আপনি একটি নামযুক্ত পাইপ ব্যবহার করতে পারেন:

mkfifo my_special_file
yes | head -n 100 > my_special_file&
cat my_special_file

অবশ্যই, আপনি পাইপটিতে ডেটা তৈরির জন্য জটিল স্ক্রিপ্ট সহ অন্য কোনও কমান্ড ব্যবহার করতে পারেন।


0

ঠিক আছে, ডিডি সহ আপনি একটি ব্লকসাইজ এবং একটি গণনা নির্দিষ্ট করতে পারেন এবং এর মাধ্যমে আকারটি সীমাবদ্ধ করতে পারেন:

dd if=/dev/urandom count=5 bs=1024 > nullfile

আপনি যদি এটি থেকে পড়তে চান তবে কেবল এটি পাইপ করুন:

dd if=/dev/urandom count=5 bs=1024 | yourReadingProcess 

পূর্ববর্তী সময়ে, আমি তৈরি প্রতিটি লিনাক্স ইনস্টলেশনটি কিছু নেটওয়ার্কিং সরঞ্জাম, পোর্টম্যাপ, ইনেট.ডি এবং এই জাতীয় এবং ইনট.ডি-তে আসে, যেখানে কিছু পরিষেবা সর্বদা নির্দিষ্ট করা থাকে, সেগুলির মধ্যে একটি বর্ণিত / নামযুক্ত চার্জেন ছিল, যদি আমি সঠিকভাবে মনে রাখি।

(... এক মিনিট পরে ...)

হ্যাঁ. / ইত্যাদি / পরিষেবাগুলিতে, আপনি সন্ধান করেন

chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source

সুতরাং আমি অনুমান করি যে এটি কোনও কিছুর পরীক্ষা করার জন্য একটি পরিষেবা এবং যা চরিত্রগুলি - সম্ভবত এলোমেলো - নেটওয়ার্কে প্রেরণ করে। আমি কেবল আমার পিসিতে /etc/xinet.d/chargen খুঁজে পাই। আরও ইনফো রয়েছে:

# default: off
# description: An xinetd internal service which generate characters.  The
# xinetd internal service which continuously generates characters until the
# connection is dropped.  The characters look something like this:
# !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
# This is the tcp version.

তবে, আমি জানি না কীভাবে এটি আপনার উদ্দেশ্যে ব্যবহার করা যায়।

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