আরএসএনসি থেকে কোনও ফোল্ডারকে কীভাবে বাদ দেওয়া যায়


60

আমি আমার এনএএস ড্রাইভে আমার হোম ফোল্ডারটি ব্যাকআপ করার চেষ্টা করছি। আমি এটি দিচ্ছি:

rsync -Paz --exclude-from 'rsync-exclude.txt' /home/chris/ admin@192.168.1.65:LinuxHome

যেখানে rsync-exclude.txtএই বিষয়বস্তু আছে:

/home/chris/Downloads/*
/home/chris/Downloads/
/home/chris/Downloads/*.*

এবং এটি একই ফোল্ডারে আমি আরএসসিএনসি (হোম ফোল্ডার) চালিত করি।

তবে আরএসসিএনসিও এই ফোল্ডারটি অনুলিপি করার চেষ্টা করে।

আমি কি ভুল করছি?

উত্তর:


88

আপনি আপনার বাদ দেওয়া তালিকায় পরম পাথ সরবরাহ করছেন ।

আরএসআইএনসি দিয়ে, বাদ দেওয়া সমস্ত (বা অন্তর্ভুক্ত!) পাথগুলি /" স্থানান্তরের মূল " এ অ্যাঙ্কর করা হয় ।

এক্ষেত্রে স্থানান্তরের মূলটি হ'ল /home/chris। যদি তুমি কর:

rsync -Paz --exclude-from 'rsync-exclude.txt' / admin@192.168.1.65:

... তাহলে আপনার ব্যতিক্রমগুলি কাজ করা উচিত (তবে আপনি সেই ফাইল সিস্টেমে অন্য সমস্ত কিছু অনুলিপি করছেন !)।

তবে যেহেতু আপনি কেবল নিজের হোম ডিরেক্টরিটি সিঙ্ক করার চেষ্টা করছেন এবং /home/chrisনামকরণের কোনও উপ-ডিরেক্টরি নেই "home/chris/Downloads", rsyncতেমন কোনও মিল খুঁজে পায় না।

সুতরাং /home/chrisআপনার rsync-exclude.txtফাইল থেকে অংশগুলি অপসারণ করার চেষ্টা করুন।

আসলে, আপনার কেবল ফাইলটিতে একটি লাইন থাকা উচিত:

/Downloads

মনে রাখবেন যে আপনি যদি নেতৃস্থানীয় নির্দিষ্ট না করে থাকেন /এবং অন্য ডিরেক্টরিতে আপনার নামকরণ হয় "Downloads"তবে সেগুলিও বাদ দেওয়া হবে। আমি অভিমানী করছি আপনি শুধুমাত্র ( "হস্তান্তর রুট" ওরফে সোর্স ডিরেক্টরিতে আপেক্ষিক,) আপনার "টপ লেভেল" বাদ দেওয়ার বিষয়ে Downloadsডিরেক্টরি, তাই আপনি নেতৃস্থানীয় চাইবেন /

সহজ উপায় (কেবল কয়েকটি পাথ বাদ দিতে)

আপনার যদি কেবল একটি ডিরেক্টরি বাদ দিতে হয় তবে কেবল এটি করুন (একটি পৃথক ফাইল এড়ানো):

rsync -Paz --exclude /Downloads /home/chris/ admin@192.168.1.65:LinuxHome

আপনি --excludeট্যাগ একসাথে চেইন করতে পারেন , যেমন:

rsync -Paz --exclude /Downloads --exclude '/Something Else' --exclude .hiddenFile /home/chris/ admin@192.168.1.65:LinuxHome

মনে রাখবেন যে, কোন স্ল্যাশ সেখানে যেহেতু, যে এক অগ্রাহ্য করবে .hiddenFileথেকে কোন প্রত্যেক ডিরেক্টরির মধ্যে এটি যখন কপি!

তবে আপনার যদি কয়েকটি ব্যতিক্রমের বেশি থাকে তবে আপনি --exclude-fromএকটি ফাইল দিয়ে ভাল off

বিঃদ্রঃ

আমি দেখতে পাচ্ছি যে আপনি ঠিক ধরেছেন, কিন্তু সেসব rsync নতুন উচিত শেষে স্ল্যাশ নোট এর/home/chris/

rsyncম্যান পেজটি উদ্ধৃত করার জন্য , "আপনি কোনও উত্স অনুসরণ / ভাবতে পারেন যার অর্থ 'ডিরেক্টরিটি অনুলিপি করুন' এর বিপরীতে 'এই ডিরেক্টরিতে থাকা বিষয়বস্তুগুলি অনুলিপি করুন'" "

তাই আপনি যদি স্ল্যাশ trailing যে শেষ করেছিলেন, আপনি একটি ডিরেক্টরির নামক দিয়ে শেষ হবে chrisগন্তব্যের ডিরেক্টরি মধ্যে ধারণকারী থেকে সবকিছু /home/chris(মূল ব্যতীত Downloadsঅবশ্যই ডিরেক্টরি,!)।


2

এটি চোখের উপর সহজ হতে পারে এবং ডিরেক্টরি এবং বাক্য গঠন বাদ দিয়ে কেবল একটি নোট:

SRC='/home/username'
DST='/run/media/username/EasyStoreRT/rsync'

rsync -avrh --stats                                 \
    --log-file=/home/username/log/rsync-home.log    \
    --exclude='/username/.cache'                    \
    --exclude='/username/.local/share/Trash'        \
    $SRC \
    $DST \

এটি সেই ডিরেক্টরিগুলি এবং তাদের মধ্যে থাকা সমস্ত ফাইলকে বাদ দেবে। যে কারণেই হোক না কেন, rysnc / cache / home / ব্যবহারকারীর নাম সংযুক্ত করা হয়নি। কেবল হোম / নিজেই অ্যাঙ্কর করবে, তাই আমাকে প্রতিটি বর্জনিত ডিরেক্টরিতে / ব্যবহারকারীর নামটি যুক্ত করতে হয়েছিল।

ম্যান পেজগুলি বলে, "যদি প্যাটার্নটি একটি / দিয়ে শুরু হয় তবে এটি ফাইলের শ্রেণিবিন্যাসের একটি নির্দিষ্ট স্পটে নোঙ্গর করা হয়, অন্যথায় এটি পথের নামের শেষের সাথে মিলে যায়।" তবে, এই স্তরক্রমটি কেবল উত্স ডিরেক্টরিতে প্রথম ডিরেক্টরি বলে মনে হয়। আমি ব্যাশ, সংস্করণ 4.4.23 (1) ব্যবহার করছি - দয়া করে।

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