কিভাবে ফাইলগুলির একটি তালিকা থেকে অন্য ডিরেক্টরির মধ্যে অনুলিপি করবেন এবং ফ্লাইতে গন্তব্য ফাইলের নামটি পরিবর্তন করবেন


-5

আপনি একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরির মধ্যে একটি ফাইল অনুলিপি করার উপায় প্রস্তাব করতে পারে।

স্ক্রিপ্ট অনুলিপি করার সময় ফাইল নামের প্রথম অক্ষরটি পুঁজি করা উচিত এবং অন্যান্য সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রাখা উচিত।


4
আপনি সাহায্যের জন্য জিজ্ঞাসা করছেন, অথবা আপনি আমাকে এটি লিখতে বলছেন জন্য আপনি?
Xyon

2
সম্ভবত আপনি আমাদের কিছু কোড দেখান যা প্রমাণ করে যে আপনি এটি সমাধান করার চেষ্টা করেছেন এবং তা করতে পারছেন না।
BenjiWiebe

উত্তর:


2

তোমার বিবেচনার জন্য:

for i in *;
do
    fletter=`echo $i| cut -b 1`;                 # FIRST LETTER
    rest=`echo $i | cut -b 2-`;                  # THE REST
    fletter=`echo $fletter | tr "[a-z]" "[A-Z]"`;# CAPITILIZE FIRST LETTER
    rest=`echo $rest | tr "[A-Z]" "[a-z]"`;      # LOWER CASE THE REST
    cp "$i" "/target/directory/$fletter$rest" ;  # COPY TO DESTINATION
done

এখানে, * বর্তমান ডিরেক্টরির মধ্যে ফাইল প্রসারিত হবে। যদি আপনি এই সীমাবদ্ধ করা চাই নথি পত্র শুধুমাত্র, নিম্নলিখিত বিবেচনা করুন:

find . -type f -print0 | while IFS= read -r -d '' i; do
    # rest of the script
done

3
কেন for i in $(ls) এবং না for i in *?
slhck

@ স্লেক আমি এই ফর্মটি ব্যবহার করে তাকে আরও সঠিকভাবে উদাহরণটি কীভাবে প্রসারিত করব তা জানার অনুমতি দিতে বলি: \ls -p | grep -v "/" শুধুমাত্র ফাইল প্রক্রিয়া - ডিরেক্টরি নয়।
mnmnc

2
এটি শুধুমাত্র ফাইলগুলি এবং কোনও ডিরেক্টরীগুলিতে প্রক্রিয়া করার সত্যিই খারাপ উপায় নয় এবং আমি একাধিক কারণে এটির বিরুদ্ধে সুপারিশ করব। দেখুন: mywiki.wooledge.org/BashFAQ/020 - আপনার উদাহরণে আপনার নামের মধ্যে স্পেস বা গ্লোবিং অক্ষরগুলির ফাইলগুলি হ্যান্ডেল করতে সক্ষম হওয়ার জন্য ভেরিয়েবলগুলি উদ্ধৃত করা উচিত।
slhck
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.