it-swarm.asia

كيف أحصل على دليل كامل في sftp؟

أنا فقط أتعلم استخدام sftp وأريد نسخ دليل من الكمبيوتر البعيد إلى الكمبيوتر المحلي. إذا حاولت

get [directory]

هذا يعطيني هذا الخطأ:

Cannot download non-regular file: /home/mpirocch/Documents

get -R لا يعمل ، أيضًا.

181
Matthew

استخدم علامة -r (العودية):

get -r *
255
mani-fresh

استعمال:

scp -r [email protected]:/home/mpirocch/Documents Documents
53
Cristian Ciupitu

استخدم lftp :

lftp sftp://[email protected]

بعد ذلك ، ضمن lftp ، cd في الدليل الذي تريد نسخه ، واستخدم الأمر mirror لتنزيل الدليل المحدد بشكل متكرر ، مثل هذا:

mirror

يقبل هذا الأمر الخيارات والوسائط:

مرآةخيارات] [مصدر  [استهداف]]

على سبيل المثال ، سيؤدي الخيار -R (أو --reverse) إلى تحميل شجرة الدليل المحلي إلى الدليل البعيد:

mirror -R

راجع صفحة lftp(1) man في موقع المشروع أو في Debian.org للاطلاع على الأوامر والخيارات الأخرى.

40
bshanks

لا تستخدم برنامج sftp مباشرة إذا كان يمكنك العثور على شيء أفضل. بالنسبة لنظام Linux ، يدعم العديد من مديري الملفات (على الأقل Nautilus و Dolphin و GNOME و KDE) sftp محليًا ، وهناك دائمًا sshfs. بالنسبة إلى Windows ، هناك WinSCP ، وربما آخرون . الهدف من كل هذه الأشياء هو السماح لك بالوصول إلى الملفات عبر بروتوكول نقل الملفات (sftp) كما لو كانت موجودة على نظام ملفات منتظم ، لذلك لا داعي لأن تهتم بأنك تقوم بالوصول إليها عبر بروتوكول نقل الملفات السريع.

15
Ryan Thompson

حسنًا ، يجب أن يساعد هذا الدليل الصغير في عكس خادم بعيد إلى المجلد المحلي باستخدام بروتوكول نقل الملفات

lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = يستخدم بروتوكول SFTP
  • mirror = وضع النسخ المتطابق
  • verbose = يعرض الملفات الجاري تنزيلها
  • use-pget-n = عدد الشرائح ، مفيدة حقًا لتسريع الملفات الكبيرة
  • parallel = يقوم بتنزيل الملفات المضاعفة في نفس الوقت

إذا كنت ترغب في تنزيل الملفات بشكل متوازٍ ، فقم بإخراج رمز use-pget-n=8 باستخدام --parallel=8

آمل أن يساعد هذا أي شخص يحتاج إلى نسخ مجلد بعيد إلى مجلد محلي

14
nwgat

جرب mget بدلاً من get.

توضيح: mgetwill العمل إذا كنت داخل الدليل الذي تريد نسخه ؛ إذا كنت تفعل شيئا مثل هذا:

sftp> cd dir_to_get
sftp> mget *

سوف تحصل على جميع الملفات في هذا الدليل. ومع ذلك ، ستحصل لا بشكل متكرر على محتويات أي من الدلائل الفرعية.

13
Ken Keenan
get -r [directory]

يحصل على [directory] وكل شيء تحته ، حيث r تعني العودية. لقد وجدت هذا فقط عن طريق كتابة help من sftp.

9
drkvogel

كما هو الحال مع cp:

scp -rp [email protected]:/path/to/dir dir

ما سبق سوف يحتفظ بأوقات وأساليب الملفات والدلائل الأصلية. هذا مفيد بشكل خاص لاسترجاع النسخ الاحتياطية.

4
Aziraphale

لدي مجلد dist dist Java في الخادم البعيد ، حيث أتابع الشجرة التالية:

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

الهدف هو: أريد استخدام SFTP؟ ووضعها في/tmp/<>

الخطوة 1. sftp remoteuser @ ip

الخطوة 2. cd/var/tmp

الخطوة 2. lmkdir/tmp/dist؛ lmkdir/tmp/dist/lib

الخطوة 3. lcd/tmp/dist

الخطوة 4. mget *

الخطوة 5. lcd/tmp/dist/lib

الخطوة 6. mget *

الخطوة 7. وأخيرا لدي هدفي

$ ls
Audio.jar  lib  README.TXT
0
YumYumYum