FTP protocolli reti comandi trasferimento-file

Comandi Base FTP

FTP (File Transfer Protocol) è un protocollo di rete standard per il trasferimento di file tra client e server. Funziona sul modello client-server e utilizza due connessioni TCP separate: una per i comandi (porta 21) e una per i dati (porta 20 in modalità attiva).

Avviare il client FTP

ftp                          # Apre il client FTP interattivo
ftp nomehostserver           # Apre il client e si connette direttamente
ftp 192.168.1.10             # Connessione tramite indirizzo IP

Comandi di connessione

ComandoDescrizione
open <host>Apre una connessione verso il server specificato
user <username>Specifica il nome utente per l’autenticazione
pass <password>Specifica la password (sconsigliato in chiaro)
bye / quitChiude la connessione e termina il client FTP
closeChiude la connessione con il server ma mantiene il client aperto
disconnectSinonimo di close
ftp> open ftp.esempio.it
Connected to ftp.esempio.it.
Name (ftp.esempio.it:utente): mario
Password: ****
230 Login successful.

ComandoDescrizione
ls / dirElenca i file nella directory remota corrente
ls -laElenco dettagliato (inclusi file nascosti)
cd <dir>Cambia la directory remota
cd ..Sale di un livello nella directory remota
pwdMostra la directory remota corrente
mkdir <dir>Crea una directory sul server remoto
rmdir <dir>Elimina una directory sul server remoto
delete <file>Elimina un file sul server remoto
rename <old> <new>Rinomina un file sul server remoto
lcd <dir>Cambia la directory locale (sul proprio PC)
!pwdMostra la directory locale corrente

Download (dal server al client)

ComandoDescrizione
get <file>Scarica un singolo file dal server
get <file> <nome_locale>Scarica e rinomina il file localmente
mget <pattern>Scarica più file (es. mget *.txt)
recv <file>Sinonimo di get
ftp> get documento.pdf
ftp> get relazione.docx bozza_relazione.docx
ftp> mget *.jpg

Con mget il client chiede conferma per ogni file. Per disabilitare la conferma: prompt off


Upload (dal client al server)

ComandoDescrizione
put <file>Carica un singolo file sul server
put <file> <nome_remoto>Carica e rinomina il file sul server
mput <pattern>Carica più file (es. mput *.csv)
send <file>Sinonimo di put
append <file>Aggiunge il file locale in coda a un file remoto
ftp> put report.pdf
ftp> put bozza.txt definitivo.txt
ftp> mput *.log

Modalità di trasferimento

FTP supporta due modalità di trasferimento che devono essere selezionate correttamente prima di caricare/scaricare file.

ComandoModalitàUso
asciiTesto ASCIIFile di testo (.txt, .csv, .html)
binaryBinario (raw)Qualsiasi altro file (.pdf, .zip, .jpg, .exe)
ftp> ascii
200 Switching to ASCII mode.
ftp> get readme.txt

ftp> binary
200 Switching to Binary mode.
ftp> get archivio.zip

Attenzione: trasferire file binari in modalità ASCII li corrompe. Usare sempre binary quando si è in dubbio.


Gestione della sessione

ComandoDescrizione
promptAttiva/disattiva la conferma interattiva per mget/mput
prompt offDisabilita le conferme (scarica/carica tutto senza chiedere)
statusMostra lo stato della connessione e le impostazioni correnti
hashAttiva/disattiva la visualizzazione di # durante il trasferimento
verboseAttiva/disattiva la visualizzazione dei messaggi del server
help / ?Mostra l’elenco dei comandi disponibili
help <comando>Mostra l’aiuto per un comando specifico

Esecuzione comandi locali

Tutti i comandi preceduti da ! vengono eseguiti sulla macchina locale senza uscire da FTP:

ftp> !ls                   # elenca file locali
ftp> !pwd                  # directory locale corrente
ftp> !mkdir nuova_cartella # crea cartella locale
ftp> !cat file.txt         # mostra contenuto file locale

Esempio di sessione completa

$ ftp ftp.esempio.it
Connected to ftp.esempio.it.
Name: mario
Password:
230 Login successful.

ftp> ls
200 PORT command successful.
226 Directory send OK.
archivio/   documenti/   readme.txt

ftp> cd documenti
250 Directory successfully changed.

ftp> binary
200 Switching to Binary mode.

ftp> get relazione.pdf
226 Transfer complete.

ftp> lcd /home/mario/upload
ftp> put progetto.zip
226 Transfer complete.

ftp> mget *.csv
prompt off
ftp> mget *.csv
226 Transfer complete.

ftp> bye
221 Goodbye.

Riepilogo comandi essenziali

CategoriaComandi
Connessioneopen, user, bye, close
Navigazione remotals, dir, cd, pwd, mkdir
Navigazione localelcd, !pwd, !ls
Downloadget, mget
Uploadput, mput
Modalità trasferimentoascii, binary
Utilitàprompt, hash, status, help

Note sulla sicurezza

FTP trasmette credenziali e dati in chiaro sulla rete. Per ambienti di produzione è preferibile usare:

  • SFTP (SSH File Transfer Protocol) — trasferimento sicuro su SSH, porta 22
  • FTPS (FTP over SSL/TLS) — FTP cifrato, porta 990 (implicito) o 21 (esplicito)
  • SCP (Secure Copy) — copia sicura via SSH