নিয়মিত সমাপ্তির সাথে একটি নির্দিষ্ট ফাইলটি কীভাবে কয়েকবার অনুলিপি করবেন?


13

আমি একটি একক ফাইল (একটি PDF) আছে এবং আমি (200 চমৎকার হবে) নামে একই ফোল্ডারে অভিন্ন কপি প্রচুর আছে করতে চান file-001, file-002ইত্যাদি

আমি এটা কিভাবে করব?


না, এটি ত্রুটি সংশোধনের জন্য।
টিম

_এই টাইপ কি আমি আশা করি?
রিঞ্জউইন্ড

@ রিনজুইন্ড হ্যাঁ! এটি আকর্ষণীয় হতে পারে - প্রতিটি জন্য একটি এলোমেলো চরিত্র চয়ন? : পি
টিম

@ টিম: আচ্ছা, এলোমেলো "_" বা "-" উত্সাহিত করতে আপনি :- পি করতে পারেন printf "%s\n" "$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )"(এবং সতর্ক হওয়া উচিত যে এটি কৃমির echo -এক
ক্যান

1
@ রমনো আমি যেভাবে ভেবেছি তার সাথে লেগে থাকব -: পি
টিম

উত্তর:


22

আপনি যেমন কিছু করতে পারে

< file tee file-{001..200}

তবে যদি মাঝারি অপাঠ্য হয়ে নেয়াটা কোনও ব্যাপারই না কতগুলি অনুলিপি এটিতে রয়েছে - মৌলিকভাবে ব্যাকআপ প্রয়োজন বৈচিত্র্য

নোট করুন যে teeস্ট্যান্ডার্ড আউটপুটে পাশাপাশি প্রতিটি প্রদত্ত ফাইলগুলিতে তার স্ট্যান্ডার্ড ইনপুটটি লিখেছেন - বড় ফাইলগুলির জন্য, বা বাইনারি ডেটাযুক্ত ফাইল বা আপনার বিশেষ টার্মিনাল সেটিংসে হস্তক্ষেপ করতে পারে এমন অন্যান্য বিশেষ অক্ষরযুক্ত ফাইলগুলির জন্য, আপনি সম্ভবত স্ট্যান্ডার্ড আউটপুটটি ডাম্প করতে চাইবেন বিট বালতি

< file > /dev/null tee file-{001..200}

4
tee file-{001..200} < file >/dev/nullআমার জন্য আরও সুগঠিত। এটি প্রায় সদৃশ উত্তর দেখুন: টার্মিনালের একাধিক ফোল্ডারে কীভাবে একটি ফাইল অনুলিপি করবেন?
রাদু রেডানু

21

এটি ক্লাসিক কেস যেখানে শেল ট্রিক্স অনেক সাহায্য করে।

for i in {000..199}; do cp file file-$i; done

এবং আমি জানি এটি একটি রসিকতা , তবে আপনি যদি এলোমেলোভাবে চান _বা -নামটি থেকে নামটি আলাদা করতে চান তবে আপনি ব্যবহার করতে পারেন:

for i in {000..199}; do 
    cp file file$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )$i; 
done

(পাঠযোগ্যতার জন্য একাধিক লাইন ...)

:-P


1
আমি যদি প্রতিটি মৌলিক সংখ্যাটি একটি _এবং প্রতিটি নন প্রাইম হতে চান -? 1 প্রধান নয়, এবং আপনি 0 এর জন্য বাছাই করেছেন! : পি জোকস!
টিম

7

কোনও ফাইলের একক নকল তৈরি করতে আপনি সম্ভবত জানেন যে আপনি এটি ব্যবহার করতে পারেন cp:

cp file file-001

এখন, কোনও ফাইলে আরও নকল তৈরি করতে, আপনি এর cpসাথে একত্রিত করতে পারেন xargs। তোমার ক্ষেত্রে:

echo file-{001..200} | xargs -n 1 cp file

কপি হবে fileথেকে file-001, file-002, ..., file-200। দেখুন man xargsআরও তথ্যের জন্য।


4

সর্বদা হিসাবে, অজগর ট্রাকটি দেরিতে আসে তবে:

এটি কার্যকর করতে সক্ষম করুন, এটিকে টার্মিনাল উইন্ডোতে টেনে আনুন, টার্মিনাল উইন্ডোতে অনুলিপি করতে ফাইলটি টানুন এবং কপির সংখ্যা নির্ধারণ করুন:

script file number_ofcopies

শীর্ষস্থানীয় শূন্যগুলির সংখ্যা স্বয়ংক্রিয়ভাবে সেট করা হয়, ফাইলগুলির নাম দেওয়া হয় file_001.pdf, ফাইল file_002.pdf-নাম্বারটি এক্সটেনশনের আগে রাখা হয়।

এই পান্ডুলিপি:

#!/usr/bin/env python3

import sys
import shutil

orig = sys.argv[1]; n = sys.argv[2]; size = len(str(n)); out = (orig[:orig.rfind(".")], orig[orig.rfind("."):])
for item in [out[0]+"_"+(size-len(str(item)))*"0"+str(item)+out[1] for item in range(1, int(n)+1)]:
    shutil.copyfile(orig, item)

হ্যাঁ, আমি আগে অজগর দিয়ে চেষ্টা করেছিলাম, কিন্তু অসচ্ছলতা পছন্দ করি না ... আমি সাধারণত পাইথনের জন্য যাই :)
টিম

@ টিম এটি অজগর কোডটির চমত্কারতাকে বাধা দেয় এমন এই সাইটের কোডের ফন্ট হতে হবে :)
জ্যাকব ভিলিজ

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