سؤال

أريد إجراء قائمة من ملفات إخراج تحديد الموقع. أريد 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/
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top