আরএসসিএনসি ডিরেক্টরি ডিরেক্টরি অনুলিপি অনুলিপি করা হয়


8

আমি ধারাবাহিক ডিরেক্টরিগুলির বিষয়বস্তু অপরিবর্তিতভাবে অন্য দূরবর্তী সিস্টেমে অনুলিপি করার চেষ্টা করছি।

/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file

dir1, dir2, এবং dir3 এর অনেকগুলি ডিরেক্টরি রয়েছে যা আমি অনুলিপি করতে চাই না । একই ডিরেক্টরি কাঠামোটি বজায় রেখে দূরবর্তী হোস্টে / dirB এ অনুলিপি করুন।

আমি চেষ্টা করেছিলাম:

rsync /dirA/*/ host:/dirB/
rsync /dirA/   host:/dirB/

তবে তারা যা চায় আমি তা করে না।

উত্তর:


20

rsync আপনাকে এমন নিদর্শনগুলি নির্দিষ্ট করার অনুমতি দেয় যা ফাইল এবং ডিরেক্টরিগুলির অন্তর্ভুক্তি বা বর্জনকে ট্রিগার করে। আমি মনে করি আপনি এরকম কিছু ব্যবহার করতে চান:

rsync -a -f '- /*/*/' /dirA/ host:/dirB/

ব্যাখ্যা:

  • -aঅনুযায়ী সংরক্ষণাগার মোড ট্রিগার করে যা "প্রতীকী লিঙ্ক, ডিভাইস, বৈশিষ্ট্য, অনুমতি, মালিকানা ইত্যাদি" পুনরাবৃত্তি এবং সংরক্ষণ উভয়কেই সক্রিয় করে man rsync
  • -fএর জন্য সংক্ষিপ্ত --filter=, যা একটি ফাইল-ফিল্টারিংয়ের নিয়ম যুক্ত করে।
    • প্যাটার্নটি একক উদ্ধৃতিগুলির মধ্যে রয়েছে যাতে শেলটি ওয়াইল্ডকার্ডগুলি প্রসারিত না করে; ডাবল উদ্ধৃতি এই ক্ষেত্রে সমানভাবে কাজ করবে।
    • - এর অর্থ এটি একটি বর্জনীয় প্যাটার্ন।
    • অগ্রণী /অর্থ প্যাটার্নটি অবশ্যই শুরু হবে dirA/(আরএসসিএনসি "ট্রান্সফার-রুট")।
    • */*প্যাটার্ন অংশ সাব কিছু ভিতরে বোঝায়।
    • পেছনটি /বর্জনকে ডিরেক্টরিতে সীমাবদ্ধ করে। এর একটি উপ-ডিরেক্টরিতে থাকা ফাইলগুলি dirA/প্রভাবিত হয় না।

সুতরাং শেষ পর্যন্ত, আরএসসিএনসি এক স্তর নীচে বেশি কিছু অনুলিপি করে (এবং দ্বিতীয় স্তরের ডিরেক্টরিগুলিও তৈরি করে না)।


2
খুব সুন্দর! আমি -f '- /*/'কেবলমাত্র শীর্ষ স্তরের ফাইলগুলিতে সীমাবদ্ধ রাখতে ব্যবহার করতে সক্ষম হয়েছি । আমি -f '- .*'কোনও হোম ডিরেক্টরি সিঙ্ক করছি বলে ডট ফাইলগুলি বাদ দিতেও আমাকে উল্লেখ করতে হয়েছিল।
haridsv

5

উপরের সমাধানটি (প্লিজস্ট্যান্ড দ্বারা) কোনও কারণে আমার পক্ষে কার্যকর হয়নি। এটি যদিও কাজ করেছে:

rsync -avc --no-r ./source/* ./destination/

এই বিকল্পটিও রয়েছে:

rsync -avc --exclude "/" ./source/ ./destination/


1

আরএসআইএনসি'র একটি "বৈশিষ্ট্য" হ'ল ডিরেক্টরি কীভাবে পার্স করা হয়।

rsync /dirA/ host:/dirB/ এবং rsync /dirA host:/dirB তাত্ত্বিকভাবে সমতুল্য হওয়া উচিত।

পুনরাবৃত্তিকে উত্সাহিত করতে না চাইলে, আপনি এড়াতে চান -r, -aযা অন্যান্য বিষয়গুলির পাশাপাশি বোঝায় -r

আমি এখনও গবেষণা নিয়ে বেশ কিছু করি নি, তবে এটি আমার সূচনা উত্তর।

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