it-swarm-eu.dev

Come ottengo un'intera directory in sftp?

Sto solo imparando a usare sftp, e voglio copiare una directory dal computer remoto al mio computer locale. Se ci provo

get [directory]

mi dà questo errore:

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

get -R non funziona, neanche.

181
Matthew

Usa il flag -r (ricorsiva):

get -r *
255
mani-fresh

Uso:

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

Usa lftp :

lftp sftp://[email protected]

Quindi, all'interno di lftp, cd nella directory che si desidera copiare e utilizzare il comando mirror per scaricare in modo ricorsivo la directory selezionata, in questo modo:

mirror

Questo comando accetta opzioni e argomenti:

specchio [OPZIONI] [fonte  [bersaglio]]

Ad esempio, l'opzione -R (o --reverse) causerà il caricamento dell'albero delle directory locali nella directory remota:

mirror -R

Vedi la pagina man di lftp(1)nel sito del progetto o su Debian.org per altri comandi e opzioni.

40
bshanks

Non usare direttamente il programma sftp se riesci a trovare qualcosa di meglio. Per Linux, molti gestori di file (almeno Nautilus e Dolphin, quelli GNOME e KDE) supportano sftp in modo nativo, e c'è sempre sshfs. Per Windows, c'è WinSCP e probabilmente others . Il punto di tutti questi è quello di consentire l'accesso ai file su sftp come se fossero su un file system normale, quindi non devi preoccuparti che tu stia accedendoli su sftp.

15
Ryan Thompson

bene questa piccola guida dovrebbe aiutare, rispecchiare un server remoto nella cartella locale con lftp

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

  • sftp:// = utilizza il protocollo SFTP
  • mirror = modalità mirror
  • verbose = mostra i file che vengono scaricati
  • use-pget-n = numero di segmenti, davvero utile per velocizzare i file di grandi dimensioni
  • parallel = scarica i file moltiplicatori allo stesso tempo

se vuoi scaricare file in parallelo, disattiva use-pget-n=8 con --parallel=8

spero che questo aiuti chiunque abbia bisogno di eseguire il mirroring di una cartella remota in una cartella locale

14
nwgat

Prova mget invece di get.

Chiarimento: mget will work se sei all'interno della directory che vuoi copiare; se fai qualcosa del genere:

sftp> cd dir_to_get
sftp> mget *

otterrà tutti i file in quella directory. Tuttavia, esso not ricorsivamente ottiene il contenuto di qualsiasi sottodirectory.

13
Ken Keenan
get -r [directory]

ottiene [directory] e tutto sotto, dove r sta per ricorsivo. Ho trovato questo solo digitando help da sftp.

9
drkvogel

Come con cp:

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

Quanto sopra conserverà i tempi e le modalità dei file originali e delle sottodirectory. Questo è particolarmente utile per il recupero dei backup.

4
Aziraphale

Dispongo di una cartella dist in Java nel server remoto, dove ho l'albero seguente:

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

L'obiettivo è: voglio usare SFTP? E metterli in/tmp/<>

Passaggio 1. sftp remoteuser @ ip

Passaggio 2. cd/var/tmp

Passaggio 2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib

Passaggio 3. lcd/tmp/dist

Passaggio 4. mget *

Passaggio 5. lcd/tmp/dist/lib

Passaggio 6. mget *

Passo 7. finalmente ho il mio obiettivo

$ ls
Audio.jar  lib  README.TXT
0
YumYumYum