GNU/Linux >> Linux Esercitazione >  >> Linux

Come scaricare in modo ricorsivo una cartella tramite FTP su Linux

ncftp -u <user> -p <pass> <server>
ncftp> mget directory

Giusto per completare la risposta data da Thibaut Barrère.

Ho usato

wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory

Nota la doppia barra dopo il nome del server. Se non metti una barra in più il percorso è relativo alla home directory dell'utente.

  • -nH evita la creazione di una directory che prende il nome dal nome del server
  • -nc evita di creare un nuovo file se esiste già nella destinazione (viene semplicemente saltato)
  • --cut-dirs=5 permette di prendere il contenuto di /absolute/path/to/directory e di metterlo nella directory in cui avvii wget. Il numero 5 viene utilizzato per filtrare i 5 componenti del percorso. La doppia barra indica un componente in più.

Puoi fare affidamento su wget che di solito gestisce correttamente ftp get (almeno nella mia esperienza). Ad esempio:

wget -r ftp://user:[email protected]/

Puoi anche usare -m che è adatto per il mirroring. Attualmente è equivalente a -r -N -l inf .

Se hai dei caratteri speciali nei dettagli della credenziale, puoi specificare --user e --password argomenti per farlo funzionare. Esempio con login personalizzato con caratteri specifici:

wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/

Come sottolineato da @asmaier, attenzione che anche se -r è per la ricorsione, ha un livello massimo predefinito di 5:

-r
--recursive
    Turn on recursive retrieving.

-l depth
--level=depth
    Specify recursion maximum depth level depth.  The default maximum depth is 5.

Se non vuoi perdere le sottocartelle, usa meglio l'opzione di mirroring, -m :

-m
--mirror
    Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
    recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
    --no-remove-listing.

Se lftp è installato sulla tua macchina, usa mirror dir . E hai finito. Vedi il commento di Ciro qui sotto se vuoi scaricare ricorsivamente una directory.


Linux
  1. Come aprire e chiudere le directory nel terminale Linux

  2. Come caricare o scaricare file/directory utilizzando sFTP in Linux

  3. Come eliminare una directory e una cartella in Linux?

  4. Come ottenere la dimensione della directory in Linux

  5. Come faccio a scaricare in modo ricorsivo una directory usando smbclient?

Come proteggere con password una cartella in Linux

Come elencare i file in modo ricorsivo in Linux

Come comprimere la cartella su Linux

Come copiare la directory su Linux

Come Chown ricorsivamente su Linux

Come eseguire l'SSH sul server tramite Linux