it-swarm.asia

Bir dizinin tamamını sftp ile nasıl alabilirim?

Sadece sftp kullanmayı öğreniyorum ve uzaktaki bilgisayardan yerel bilgisayarıma bir dizin kopyalamak istiyorum. Denersem

get [directory]

bana bu hatayı veriyor:

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

get -R da çalışmıyor.

181
Matthew

-r (özyinelemeli) bayrağını kullanın:

get -r *
255
mani-fresh

Kullanın:

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

Kullanım lftp :

lftp sftp://[email protected]

Ardından, lftp içinde, kopyalamak istediğiniz dizine cd, ve seçilen dizini yinelemeli olarak indirmek için mirror komutunu kullanın:

mirror

Bu komut seçenekleri ve argümanları kabul eder:

ayna [SEÇENEKLER] [kaynak  [hedef]]

Örneğin, -R (veya --reverse) seçeneği, yerel dizin ağacını uzak dizine yüklemesine neden olur:

mirror -R

Diğer komutlar ve seçenekler için lftp(1) man sayfasına projenin sitesinde veya Debian.org'da sayfasına bakın.

40
bshanks

Daha iyi bir şey bulabilirseniz, sftp programını doğrudan kullanmayın. Linux için, birçok dosya yöneticisi (en azından Nautilus ve Dolphin, GNOME ve KDE yöneticileri) yerel olarak desteklenir ve her zaman sshfs vardır. Pencereler için, WinSCP var ve muhtemelen diğerleri . Tüm bunların amacı, düzenli bir dosya sistemi üzerindeymiş gibi sftp üzerinden dosyalara erişmenize izin vermektir, bu nedenle sftp üzerinden erişmenize dikkat etmeniz gerekmez.

15
Ryan Thompson

peki bu küçük rehber uzak bir sunucuyu lftp ile yerel klasöre yansıtmalı

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

  • sftp:// = SFTP protokolünü kullanır
  • mirror = ayna modu
  • verbose = indirilen dosyaları gösterir
  • use-pget-n = segment sayısı, büyük dosyaları hızlandırmak için gerçekten yararlı
  • parallel = çarpan dosyalarını aynı anda indirir

eğer dosyaları paralel olarak indirmek istiyorsanız, use-pget-n=8 ile --parallel=8 komutunu kapatın.

umarım bu uzaktaki bir klasörü yerel bir klasöre yansıtmak isteyen herkes için yardımcı olur

14
nwgat

mget yerine get komutunu deneyin.

Açıklama: mget will , kopyalamak istediğiniz dizinde iseniz; Eğer böyle bir şey yaparsanız:

sftp> cd dir_to_get
sftp> mget *

bu dizindeki tüm dosyaları alacak. Bununla birlikte, not , alt dizinlerin içeriğini yinelemeli olarak alır.

13
Ken Keenan
get -r [directory]

[directory] ve altındaki her şeyi alır; burada r özyinelemeli anlamına gelir. Bunu sadece help'dan sftp yazarak buldum.

9
drkvogel

cp ile olduğu gibi:

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

Yukarıdakiler orijinal dosyaların ve alt dizinlerin zamanlarını ve modlarını koruyacaktır. Bu özellikle yedeklerin alınması için kullanışlıdır.

4
Aziraphale

Ağacımın bulunduğu uzak sunucuda Java dist klasörü var:

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

Hedef: SFTP kullanmak istiyorum? Ve onları/tmp/<> içine koy.

Adım 1. sftp remoteuser @ ip

Adım 2. cd/var/tmp

Adım 2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib

Adım 3. lcd/tmp/dist

4. Adım. Mget *

Adım 5. lcd/tmp/dist/lib

6. Adım. Mget *

7. adım nihayet hedefim var

$ ls
Audio.jar  lib  README.TXT
0
YumYumYum