SCP تحديد موقع الإخراج بواسطة Xargs
سؤال
أريد إجراء قائمة من ملفات إخراج تحديد الموقع. أريد scp
لاتخاذ القائمة.
لست متأكدا من بناء الجملة. محاولتي مع رمز الزائفة
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
كيف يمكنك نقل الملفات إلى الوجهة؟
المحلول
عادة، {} هو تجدISM:
find ... -exec cmd {} \;
حيث {} هو الملف الحالي الذي يجد يعمل عليه.
يمكنك الحصول Xargs. أن تتصرف مماثلة:
locate labra | xargs -I{} echo {} more arguments
ومع ذلك، ستلاحظ بسرعة أنه يدير الأوامر عدة مرات بدلا من مكالمة واحدة SCP..
لذلك في سياق مثالك:
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
لاحظ اقتباس واحد حول {} كما سيكون مفيدا للمسارات مع المساحات فيها.
نصائح أخرى
عادة ما يأخذ xargs عادة أكبر عدد ممكن من الحجج على سطر الأوامر، ولكن باستخدام -I فإنه فجأة يأخذ واحدة فقط. جنو مواز http://www.gnu.org/software/parallel/ قد يكون حلا أفضل:
locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/
منذ أن تبحث في SCP، هل أقترح عليك أيضا التحقق من Rsync؟
locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/
لا تنتمي إلى StackOverflow