scp -r… তবে একটি নির্দিষ্ট সাব-ডিরেক্টরিকে বাদ দিন (বাদ দিন)


29

এখানে ডিরেক্টরি কাঠামো:

/a/
/a/b/
/a/c/

আমি সমস্ত কিছু অনুলিপি করতে চাই, / এ / সি / উপ-ডিরেক্টরিতে ছাড়াই T

scp -rp myserver:/a .      # this will copy everything

প্রশ্ন: আমি কীভাবে scp কমান্ডের বাইরে রেখে একটি ডিরেক্টরি নির্দিষ্ট করব?


3
আসল অনুপ্রেরণা হ'ল সাব ডিরেক্টরিটি "/ এ / সি /" খুব বড় (গিগাবাইট), সুতরাং এটি ছেড়ে দেওয়ার ফলে অনুলিপিটি কয়েক মিনিট থেকে সেকেন্ডে কেটে যাবে।
রাশিয়ান_স্পাই

উত্তর:


28

আমি মনে করি না আপনি পারবেন তবে আপনি আরএসসিএনসি ব্যবহার করতে পারবেন? এটার মতো কিছু:

rsync -a --exclude=a/c myserver:/a .

5

আমি মনে করি এটি এটি করার সঠিক উপায় হতে পারে তাই আপনি এখনও এসএসএইচ ব্যবহার করছেন, আমি এটি স্কিপ দিয়ে করার কোনও উপায় খুঁজে পাই নি - তবে এসএসএসের মাধ্যমে আরএসসিএনসি ব্যবহার করা এটি সমাধান করতে পারে।

rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .

আপনি যদি -n সুইচ ব্যবহার করেন তবে এটি প্রক্রিয়াটির একটি শুকনো রান তৈরি করবে:

 rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .

এছাড়াও চেষ্টা করুন -rz: -e "ssh -i private.pem" -rz 'users@server:/full/path/'
mbrownnyc

1

নীচের উদাহরণ হিসাবে আপনি বর্ধিত গ্লোববিং ব্যবহার করতে পারেন:

#Enable extglob
shopt -s extglob

cp -rv !(./excludeme/*.jpg) /var/destination

0

এটি করার সঠিক উপায় নয়, তবে কেবলমাত্র পঠনযোগ্য হিসাবে বাদ দিতে চান এমন সাব-ডিরেক্টরিটি সেট করুন। chmod -R 444 /a/cকৌতুক করা উচিত। এটি ডিরেক্টরিতে লেখার চেষ্টা করলে আপনি "অনুমতি অস্বীকৃত" ত্রুটি পাবেন।

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