scp খুব স্মার্ট নয়: যখন একই দূরবর্তী হোস্টের ফাইলগুলি একাধিক কমান্ড লাইন আর্গুমেন্ট দেওয়া হয়, তখন এটি প্রতিটি আর্গুমেন্টের জন্য একটি নতুন সংযোগ খোলে।
আপনি এর rsyncপরিবর্তে ব্যবহার করতে পারেন scp, এটি এইভাবে স্মার্ট (এবং অন্যান্য উপায়ে)।
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
আরেকটি পন্থা হয় একটি একক আর্গুমেন্ট পাস scpযে একাধিক ফাইল বর্ণনা ।
আপনার সিস্টেম সেট আপ করার জন্য একটি পৃথক পদ্ধতির হ'ল যাতে আপনাকে সর্বদা প্রমাণীকরণ করতে না হয়। সাধারণত, কী প্রমাণীকরণ সেট আপ করুন , যা বেশিরভাগ পরিস্থিতিতে আরও সুবিধাজনক এবং আরও সুরক্ষিত। বিকল্পভাবে বা অতিরিক্ত হিসাবে সংযোগ ভাগ করে নেওয়া সেট আপ করুন , যাতে আপনার প্রতি সেশনে একবারে প্রমাণীকরণের প্রয়োজন হয়। যাই হোক না কেন, একটি উপনাম সেট আপ করুন যাতে আপনাকে প্রতিবার ব্যবহারকারীর নাম এবং পোর্ট নির্দিষ্ট করতে হবে না। আপনার ~/.ssh/config:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
ssh -Nf nickকোনও সংযোগ খোলার জন্য চালান , এবং তারপরে সমস্ত সংযোগগুলি nickবিদ্যমান সংযোগটিতে পিগিগ্যাক করবে। এখন আপনি চালাতে পারেন
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/