পুনরাবৃত্ত, অ-ওভার রাইটিং ফাইল অনুলিপি?


21

আমি একটি ডিরেক্টরি পেয়েছি যাতে কফিস্ক্রিপ্ট / জাভাস্ক্রিপ্ট ফাইলগুলি সহ অন্যান্য ফোল্ডারগুলি থাকে contains আমি একই ফোল্ডারের কাঠামো সূক্ষ্ম সহ একটি নতুন ফোল্ডারে কফিস্ক্রিপ্ট ফাইলগুলি সংকলন করতে সক্ষম।

আমি যা করতে চাই তা হ'ল উত্স ফোল্ডারে থাকা সমস্ত * .js ফাইলগুলি গন্তব্য ফোল্ডারে পুনরাবৃত্তভাবে অনুলিপি করা। গন্তব্য ফোল্ডারে ইতিমধ্যে উপস্থিত এমন কোনও ফাইলও আমি ওভাররাইট করতে চাই না। এটি কীভাবে সম্পন্ন করবেন?

আমি ব্যবহার করার চেষ্টা cp -n source/**.js desination/এবং cp -Rn source/**.js desination/অন্য অনুরূপ প্রশ্ন দিকে তাকিয়ে পর, কিন্তু এটা কাজ করা মনে হচ্ছে না।

এটি কীভাবে সম্পন্ন করবেন?


আপনার কি আরএসআইএনসি একবার দেখেছেন?
বোনব

@ ব্রোব আমার কাছে নেই। আমি এটি একবার বা দুবার ব্যবহার করেছি, তবে কেবল ফাইলগুলি দূরবর্তীভাবে পাওয়ার জন্য।
AlbertEngelB

উত্তর:


25

আপনি rsync ব্যবহার করতে পারেন (এটি স্থানীয় অনুলিপিও করে)

rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
  • -r ডিরেক্টরিতে পুনরাবৃত্তি করতে,
  • --ignore-existing গন্তব্য বিদ্যমান ফাইল উপেক্ষা করতে,
  • includeএবং excludeগড় ফিল্টারগুলি: সব ডিরেক্টরি অন্তর্ভুক্ত সব * .js ফাইল, বাকি অগ্রাহ্য অন্তর্ভুক্ত; প্রথমটি অন্তর্ভুক্ত করা দরকার, অন্যথায় চূড়ান্ত বাদে তাদের সামগ্রী স্ক্যান করার আগে ডিরেক্টরিগুলিও বাদ দেয় exc

অবশেষে, আপনি -Pযদি অগ্রগতি --list-onlyদেখতে চান তবে আপনি এটি যুক্ত করতে পারেন , যদি আপনি এটি অনুলিপি না করে কী অনুলিপি করতে চান তা দেখতে -tচান এবং টাইমস্ট্যাম্পগুলি সংরক্ষণ করতে চান এমন একটি ।


এটি সম্পর্কিত নয়, তবে আমি সম্প্রতি আরএসসিএন কমান্ড শিখেছি, যখন আমি একটি পার্টিশন থেকে অন্য পার্টিশনে 15 বছরের নথী সরিয়েছি। আমার ফাইলগুলি সেখানে ছিল বলে আত্মবিশ্বাস, আমি তখন পুরানো পার্টিশনটি মুছলাম এবং সেখানে অন্য কিছু জিনিস রেখেছি; আমি পরে বুঝতে পারি যে আমি সমস্ত টাইমস্ট্যাম্পগুলি হারিয়েছি এবং টি-ফ্ল্যাগটি আবিষ্কার করেছি। শুধু আমার কষ্টটা ভাগ করে নিতে চেয়েছি: '(


হাহা, এই এক কাজ! rsyncস্পষ্টতই বোমাটি।
AlbertEngelB

3
হ্যাঁ এটি, আমি সবেই এটি জানি তবে আপনার প্রশ্নের উত্তর দেওয়ার চেষ্টা করে এটি সম্পর্কে অনেক কিছু শিখলাম। ভবিষ্যতে যদি আপনাকে আরও এগিয়ে যেতে হয় তবে আপনি ফাইলগুলিতে জটিল ফিল্টার সংজ্ঞায়িত করতে পারেন এবং উদাহরণস্বরূপ কমান্ডে তাদের কল করতে পারেন। আপনার প্রতি ডিরেক্টরি ফিল্টার থাকতে পারে, অনুলিপি করার সময় ডেটা সংকোচন করতে পারেন এবং এটি কেবল এটির পৃষ্ঠটি স্ক্র্যাচ করছে!
বোনব

7

এটি সিপি ব্যবহার করেও অর্জনযোগ্য। এখানে দেখো:

sudo cp -vnpr /xxx/* /yyy

xxx = উত্স

yyy = গন্তব্য

v = verbose

n = কোনও ক্লোবার নেই (ওভাররাইট নেই)

p = অনুমতি সংরক্ষণ করুন

r = recursive


5

ম্যান পেজগুলি দেখে মনে হচ্ছে আপনি -nবিকল্পটি চান ।

-n, --no-clobber
   do not overwrite an existing file (overrides the previous -i option)

আমি -n ব্যবহার করে চেষ্টা করেছি, তবে এটি আমাকে * .js ফাইল দ্বারা ফিল্টার করতে দেয় না।
AlbertEngelB

0

আমার ডিস্ট্রোতে ক্লোবার পাওয়া যায়নি, তাই:

echo n | cp -vipr xxx yyy

xxx = উত্স

yyy = গন্তব্য

v = verbose

i = ইন্টারেক্টিভ (ওভাররাইটে প্রম্পট) | এই কারণেই কমান্ডটির আগে "ইকো এন |"

p = অনুমতি সংরক্ষণ করুন

r = recursive

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