এলোমেলো সামগ্রী সহ অনেকগুলি ফাইল তৈরি করুন


23

আমি কমপক্ষে 1KB এলোমেলো ডেটাযুক্ত একাধিক (হাজার হাজার) ফাইল তৈরি করার জন্য একটি কমান্ড সন্ধান করছি।

উদাহরণ স্বরূপ,

Name            size
file1.01        2K
file2.02        3K
file3.03        5K
etc.

আমি কীভাবে এই জাতীয় অনেকগুলি ফাইল তৈরি করতে পারি?


"এক্সক্লুসিভ" বলতে কী বোঝ? এটি প্রসঙ্গে অর্থবোধ করে না, তাই আপনি সম্ভবত ভুল শব্দটি ব্যবহার করেছেন।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

আমি বোঝাতে চাইছি যে ফাইলগুলিতে একই সামগ্রী থাকতে পারে না।
জোও জোসে

সুতরাং, একচেটিয়া অর্থ অনন্য হতে পারে।
কোনরকম

উত্তর:


25

যেহেতু আপনার অন্য কোনও প্রয়োজনীয়তা নেই, তাই এর মতো কিছু কাজ করা উচিত:

#! /bin/bash
for n in {1..1000}; do
    dd if=/dev/urandom of=file$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 ))
done

(এটি bashকমপক্ষে জন্য প্রয়োজন {1..1000})।


2
এই প্রয়োজন bashসহ অনেকগুলি কারণের জন্য $((…))এবং $RANDOM। এমনকি প্রতিটি শেলের $(…)মধ্যে উপস্থিত নাও থাকতে পারে ।
জি-ম্যান বলেছেন 'মনিকাকে পুনরায় ইনস্টল করুন'

1
@ জি-ম্যান, যাই হোক, এই বৈশিষ্ট্যগুলি কেউই নির্দিষ্ট bashকিংবা তারা জন্ম হয়েছিল bash ( {1..1000}থেকে আসে zsh, for n in...; doneএবং পরিবর্তনশীল সম্প্রসারণ বোর্ন শেল থেকে আসে, $(...), $((...))এবং $RANDOM ksh আসা)। বৈশিষ্ট্য POSIX না হয় {1..1000}, $RANDOMএবং /dev/urandom
স্টাফেন চেজেলাস

1
আপনি 1..1000 হতে চেয়েছিলেন যদি ধ্রুবক-চওড়া আপনার যা দরকার "%04d"যা কেস bashবা zshকি করতে পারেন {0001..1000}সঙ্গে কোনprintf
dave_thompson_085

অতিরিক্ত বৈশিষ্ট্য: আমার এ ফাইলগুলি এলোমেলোভাবে নামযুক্ত নেস্টেড সাব-ডিরেক্টরিতে প্রচুর পরিমাণে ছড়িয়ে দেওয়ার প্রয়োজন need
স্টু

10

সঙ্গে একটি প্রকরণ seq, xargs, ddএবং shuf:

seq -w 1 10 | xargs -n1 -I% sh -c 'dd if=/dev/urandom of=file.% bs=$(shuf -i1-10 -n1) count=1024'

মন্তব্য অনুসারে অনুরোধ হিসাবে ব্যাখ্যা:

seq -w 1 1001 থেকে 10 পর্যন্ত সংখ্যার ক্রম মুদ্রণ করে

xargs -n1 -I%% এর সাথে sh -c 'dd ... % ...'প্রতিস্থাপন করে প্রতিটি ক্রম সংখ্যার জন্য কমান্ড কার্যকর করে

dd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024/ dev / urandom থেকে 1024 ব্লকের ব্লকসাইজ সহ ফিডযুক্ত ফাইলগুলি তৈরি করে

shuf -i1-10 -n11 থেকে 10 পর্যন্ত একটি এলোমেলো মান


ওয়াট এটা ঠিক কি করে?
সরুফুটউ

1
@ saru95 ব্যাখ্যা যুক্ত করা হয়েছে।
ফ্ল্লোহেমসেল্ফ

এটি এলোমেলো আকারের 10 টি ফাইল তৈরি করে। "10" ফাইলের সংখ্যাটি চেয়েছিলেন Change
বরং

2

আপনি এর মতো কিছু করতে পারেন:

#!/bin/bash
filecount=0
while [ $filecount -lt 10000 ] ; do
    filesize=$RANDOM
    filesize=$(($filesize+1024))
    base64 /dev/urandom | 
    head -c "$filesize" > /tmp/file${filecount}.$RANDOM
    ((filecount++))
done

আমি এটি করার চেষ্টা করেছি কিন্তু কাজ হয়নি। আপনি প্যারামিটারগুলি ব্যাখ্যা করতে চাইতে পারেন। :)
জোও জোসে

খুব দ্রুত thx @rahul
বিজি ব্রুনো

2

এটি একটি একক পাইপলাইন ব্যবহার করে এবং মোটামুটি দ্রুত বলে মনে হয়, তবে সমস্ত ফাইলগুলি একই আকারের সীমাবদ্ধতা রয়েছে

dd if=/dev/urandom bs=1024 count=10240 | split -a 4 -b 1k - file.

ব্যাখ্যা: 10240 * 1024 বাইট ডেটা তৈরি করতে ডিডি ব্যবহার করুন; এটি আলাদা করে ১০০৪০ আলাদা করে প্রতিটি 1k ফাইল (নামগুলি 'file.aaaa' থেকে 'file.zzzz' এর মাধ্যমে চলবে)

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