FTP(1) | General Commands Manual | FTP(1) |
ftp
— ARPANET
programma di trasferimento file
ftp
[-v
]
[-d
] [-i
]
[-n
] [-g
]
[host]
Ftp
è l'interfaccia utente verso lo
standard ARPANET File Transfer Protocol. Il programma permette a un utente
di trasferire file da e verso un sito di rete remoto.
Possono essere specificate opzioni dalla linea di comando, o all'interprete dei comandi.
-v
ftp
a
mostrare tutte le risposte dal server remoto, oltre a un rapporto sulle
statistiche di trasferimento dati.-n
ftp
di tentare
l'“auto-login” alla connessione iniziale. Se l'auto-login
è abilitato, ftp
controllerà nel
file .netrc (vedere sotto) nella home directory
dell'utente una voce che descriva un account sulla macchina remota. Se non
esiste nessuna voce, ftp
chiederà un nome
di login per la macchina remota (quello predefinito è
l'idfentità dell'utente sulla macchina locale), e, se necessario,
chiederà una password e un account con i quali fare il login.-i
-d
-g
L'host del client con cui ftp
comunica
può essere specificato sulla linea di comando. Se viene fatto questo
ftp
tenterà immediatamente di stabilire una
connessione a un server FTP su questo host; altrimenti,
ftp
aprirà il suo interprete comandi e
aspetterà istruzioni dall'utente. Quando ftp
è in attesa di comandi dall'utente viene fornito il prompt
‘ftp>
’ all'utente. I seguenti
comandi sono riconosciuti da ftp
:
!
[comando [argomenti]]$
nome-macro [argomenti]macdef
. Gli argomenti sono
passati alla macro separatamente.account
[passwd]append
file-locale [file-remoto]ntrans
o
nmap
. Il trasferimento file usa le impostazioni
correnti per tipo
,
formato
, modo
, e
struttura
.ascii
tipo
di trasferimento file in ASCII.
Questo è il tipo predefinito.bell
binary
tipo
di trasferimento file per
supportare il trasferimento di dell'immagine binaria.bye
ftp
. Anche la fine di un file farà
terminare la sessione e uscire.case
mget
. Quando
case
è on (il predefinito è off), i
nomi di file sul computer remoto con tutte lettere maiuscole sono scritti
nella directory locale con lettere minuscole.cd
remote-directorycdup
chmod
mode nome-fileclose
cr
cr
è on (la condizione predefinita),
i caratteri invio sono estratti da questa sequenza per conformarsi al
delimitatore di record UNIX che usa un singolo
linefeed. I record su sistemi remoti non-UNIX
potrebbero contenere linefeed; quando viene effettuato un trasferimento di
file ascii questi linefeed possono essere distinti da un delimitatore di
record solo quando cr
è off.delete
file-remotodebug
[valore-debug]ftp
stampa ciascun comando inviato alla macchina
remota, preceduto dalla stringa
‘-->
’dir
[directory-remota]
[file-locale]ftp
chiederà all'utente di verificare
che l'ultimo argomento sia davvero il file locale destinato a ricevere
l'output di dir
. Se non è specificata
alcuna directory, è usata la directory di lavoro corrente sulla
macchina remota. Se non è specificato alcun file locale, o
file-locale è -
,
l'output va al terminale.disconnect
form
formatoform
a
formato. Il formato predefinito è
“file”.get
file-remoto [file-locale]maiuscole
, ntrans
, e
nmap
. Le impostazioni correnti per
tipo
, formato
,
modo
, e struttura
sono
usate durante il trasferimento del file.glob
mdelete
,
mget
e mput
. Se il
globbing è disattivato con glob
, gli
argomenti del nome del file sono presi letteralmente e non espansi. Il
globbing per mput
è fatto come in
csh(1). Per mdelete
e
mget
, ciascun nome di file remoto è espanso
separatamente sulla maccina remota e gli elenchi non vengono uniti.
L'espansione di un nome directory probabilmente sarà differente
dall'espansione del nome di un file ordinario: il risultato esatto dipende
dal sistema operativo remoto e dal server ftp, e può venire
prevista digitando ‘mls file-remoti
-
’ Nota: mget
e
mput
non sono fatti per trasferire interi
sottoalberi di directory di file. Questo può essere fatto
trasferendo un archivio tar(1) del sottoalbero (in modo
binario).hash
[dimensione]help
[comando]ftp
stampa un elenco dei comandi noti.idle
[secondi]lcd
[directory]ls
[directory-remota]
[file-locale]ls -l
’. (Vedere anche
nlist
.) Se directory-remota
non viene specificata viene usata la directory di lavoro corrente. Se il
prompt interattivo è attivo, ftp
chiederà all'utente di verificare che l'ultimo argomento sia
davvero il file locale destinato a ricevere l'output di
ls
. se non viene specificato alcun file locale, o
se file-locale è
‘-
’, l'output è inviato al
terminale.macdef
nome-macroclose
. Il
processore macro interpreta `$' e `\' come caratteri speciali. Un `$'
seguito da un numero (o numberi) è sostituito dal corrispondente
argomento sull'invocazione della macro nella linea di comando. Un `$'
seguito da un `i' segnala al processore macro che l'esecuzione della macro
deve venire ripetuta. Al primo passaggio `$i' è sostituita dal
primo argomento sull'invocazione della macro nella linea di comando, al
secondo passaggio è sostituita dal secondo argomento, e così
via. Una `\' seguita da qualunque carattere è sostituita da quel
carattere. Usare la `\' per impedire il trattamento speciale di `$'.mdelete
[file-remoti]mdir
file-remoti file-localedir
, tranne che possono essere specificati
più file remoti. Se il prompt interattivo è attivo,
ftp
chiederà all'utente di verificare che
l'ultimo argomento sia davvero il file locale destinato a ricevere
l'output di mdir
.mget
file-remotiget
per ciascun nome file che viene
prodotto. Vedere glob
per maggiori dettagli
sull'espansione dei nomi di file. I nomi di file risultanti verranno
quindi processati in accordo con le impostazioni
case
, ntrans
, e
nmap
. I file sono trasferiti nella directory di
lavoro locale, che può essere cambiata con
‘lcd directory
’; nuove directory
locali popssono essere create con ‘! mkdir
directory
’.mkdir
nome-directorymls
file-remoti file-localenlist
, con la differenza che possono essere
specificati più file remoti, e che il
file-locale deve essere specificato. Se il prompt
interattivo è attivato ftp
chiederà
all'utente di verificare che l'ultimo argomento sia veramente il file
locale di destinazione che deve ricevere l'output di
mls
.mode
[nome-modo]mode
del trasferimento file su
nome-modo. Il modo predefinito è
“stream” mode.modtime
nome-filemput
file-localiput
per ciascun file nell'elenco
risultante. Vedere glob
per i dettagli
sull'espansione dei nomi di file. I nomi di file risultanti verranno
quindi processati in accordo con le impostazioni
ntrans
e nmap
.newer
nome-filenewer
. Altrimenti questo comando è identico
a get.nlist
[directory-remota]
[file-locale]ftp
chiederà all'utente di
verificare che l'ultimo argomento sia veramente il file locale di
destinazione che deve ricevere l'output di nlist
.
Se non viene specificato alcun file locale, o se
file-locale è -
,
l'output è inviato al terminale.nmap
[inpattern outpattern]mput
e i comandi
put
dati senza aver specificato alcun nome di file
remoto di destinazione. Se vengono specificati degli argomenti li nomi di
file locali sono mappati durante i comandi mget
e
get
dati senza aver specificato alcun nome di file
remoto di destinazione. Questo comando è utile quando ci si
connette a un computer remoto
non-UNIX con differenti
convenzioni o pratiche sui nomi di file. La mappatura segue lo schema
impostato da inpattern e
outpattern. [Inpattern]
è un modello per i nomi di file in ingresso (che potrebbero essere
già stati processati in accordo con le impostazioni
ntrans
e case ).
Il
template delle variabili è ottenuto includendo le sequanze `$1',
`$2', ..., `$9' in inpattern. Usare `\' per impedire
questo speciale trattamento del carattere `$'. Tutti gli altri caratteri
sono trattati letteralmente, e sono usati per determinare i valori delle
variabili nmap
[inpattern].
Per esempio, dato inpattern $1.$2 e il nome del file
remoto "mydata.data", $1 avrebbe il valore "mydata", e
$2 avrebbe il valore "data". outpattern
determina i nomi di file mappati risultanti. Le sequenze `$1', `$2', ....,
`$9' sono sostituite da qualunque valore risultante dal modello
inpattern. La sequenza `$0' è sostituita dal
nome di file originale. Inoltre, la sequenza
‘[seq1,
seq2]
’ è sostituita da
[seq1] se seq1 non è
una stringa null; altrimenti è sostituita da
seq2. Per esempio, il comando
nmap $1.$2.$3 [$1,$2].[$2,file]
produrrà in uscita il nome di file "myfile.data" per i nomi di file di input "myfile.data", e "myfile.data.old", "myfile.file" per i nomi di file di input "myfile", e "myfile.myfile" per i nomi di file di input ".myfile". In outpattern, possono essere inclusi degli spazi, come nell'esempio: `nmap $1 sed "s/ *$//" > $1' . Usare il carattere `\' per impedire il trattamento speciale dei caratteri `$','[','[', e `,'.
ntrans
[inchars [outchars]]mput
e put
inseriti senza aver specificato un nome di file remoto di destinazione. Se
vengono specificati degli argomenti, i caratteri nei nomi di file locali
vengono tradotti durante i comandi mget
e
get
inseriti senza aver specificato un nome di
file locale di destinazione. Questo comando è utila quando ci si
connette a un computer remoto
non-UNIX con convenzioni o
pratiche differenti sui nomi di file. I caratteri in un nome di file che
corrispondano a un carattere in inchars sono
sostituiti con il corrispondente carattere in
outchars. Se la posizione del carattere in
inchars è oltre la lunghezza di
outchars, il carattere è cancellato dal nome
del file.open
host [port]ftp
tenterà di contattare un
server FTP a quella porta. Se l'opzione auto-login
è on (default), ftp
tenterà anche di
fare il log automaticamente dell'utente al server FTP (vedere sotto).passive
PASV
per tutte le connessioni dati invece del
solito comando PORT
. Il comando
PASV
richiede che il server remoto apra una porta
per la connessione dati e restituisca l'indirizzo di tale porta. Il server
remoto rimane in ascolto su questa porta e il client si connette ad essa.
Quando si usa il più tradizionale comando
PORT
il client rimane in ascolto su una porta e
invia quell'indirizzo al server remoto, che si connette ad essa. Il modo
passivo è utila quando si usa ftp
attraverso un router gateway o un host che controlla la
direzionalità del traffico. (Notare che sebbene i server ftp
debbano supportare il comando PASV
secondo RFC
1123, alcuni non lo fanno).prompt
mget
o
mput
trasferirà tutti i file, e qualunque
comando mdelete
cancellerà tutti i
file.proxy
ftp-commandproxy
deve essere un open
,
per stabilire la connessione di controllo secondaria. Inserire il comando
"proxy ?" per vedere altri comandi ftp eseguibili sulla
connessione secondaria. I seguenti comandi agiscono diversamente quando
preceduti da proxy
: open
non definirà nuove macro durante il processo di auto-login,
close
non cancellerà le definizioni di
macro esistenti, get
e
mget
trasferiscono file dall'host sulla
connessione di controllo primaria all'host sulla connessione di controllo
secondaria, e put
, mput
, e
append
trasferiscono file dall'host sulla
connessione di controllo secondaria all'host sulla connessione di
controllo primaria. I trasferimenti di file di terze parti dipendono dal
supporto del comando PASV
del protocollo ftp da
parte del server sulla connessione di controllo secondaria.put
file-locale [file-remoto]ntrans
o nmap
nel nome del file remoto. Il trasferimento file usa le impostazioni
correnti per tipo
,
formato
, modo
, e
struttura
.pwd
quit
bye
.quote
arg1 arg2 ...recv
file-remoto [file-locale]reget
file-remoto [file-locale]remotehelp
[nome-comando]remotestatus
[nome-file]rename
[da] [a]reset
restart
markerget
o
put
al marker indicato. Su
sistemi UNIX marker è normalmente un byte
offset nel file.rmdir
nome-directoryrunique
get
o
mget
al nome viene aggiunto un ".1". Se
il nome risultante corrisponde ad un altro file esistente, al nome
originale viene aggiunto un ".2". Se questo processo continua
fino a ".99" viene stampato un messaggio di errore, e il
trasferimento non avviene. Il nome di file unico generato verrà
riportato. Notare che runique
non
influenzerà i nomi di file localil generati tramite un comoando
shell (vedere sotto). Il valore predefinito è off.send
file-locale [file-remoto]sendport
PORT
. Per default
ftp
tenterà di usare un comando
PORT
quando stabilisce una connessione per ciascun
trasferimento dati. L'uso dei comandi PORT
può prevenire ritardi quando si eseguono trasferimenti multipli di
file. Se il comando PORT
fallisce,
ftp
userà la porta dati predefinita. Quando
l'uso dei comandi PORT
è disabilitato, non
verrà fatto nessun tentativo di usare comandi
PORT
per ciascun trasferimento dati. Questo
è utile per certe implementazioni FTP che ignorano i comandi
PORT
ma, scorrettamente, indicano che sno stati
accettati.site
arg1 arg2 ...SITE
.size
nome-filestatus
ftp
.struct
[nome-struttura]sunique
STOU
del protocollo ftp per un completamento
valido. Il server remoto riporterà il nome unico. Il valore
predefinito è off.system
tenex
trace
type
[nome-tipo]type
di trasferimento file in
nome-tipo. Se non è specificato alcun tipo,
è stampato il tipo corrente. Il tipo predefinito è network
ASCII.umask
[newmask]user
nome-utente [password]
[account]ftp
la ciederà all'utente (dopo
aver disabilitato l'echo locale). Se non è specificato alcun campo
account e il server FTP lo richiede, verrà
chiesto all'utente. Se è specificato un campo
account un comando account verrà fornito al
server remoto dopo che la sequenza di login è completata se il
server remoto non ha richiesto il login. A meno che
ftp
sia invocato con “auto-login”
disabilitato, questo processo è fatto automaticamente alla
connessione iniziale al server FTP.verbose
Gli argomenti del comando che contengono spazi possono essere virgolettati con virgolette di tipo `"'.
Per abortire un trasferimento file usare il tasto di interruzione
del terminale (solitamente Ctrl-C). I trasferimenti in invio verranno
immediatamente arrestati. I trasferimenti in ricezione verranno arrestati
inviando un comando del protocollo ftp ABOR
al
server remoto, e scartando ogni ulteriore dato ricevuto. La velocità
con cui questo viene ottenuto dipende dal supporto del server remoto per il
processamento di ABOR
. Se il server remoto non
supporta il comando ABOR
il prompt
‘ftp>
’ non apparirà fino a
quando il server remoto ha completato l'invio del file richiesto.
La sequenza di tasti di interruzione del terminale verrà
ignorata quando ftp
ha completato un qualunque
processamento locale ed è in attesa di una risposta dal server
remoto. Il processo ABOR descritto sopra, o anche comportamenti inattesi del
server remoto, incluse violazioni del protocollo ftp, possono causare un
forte rallentamento in questa modlità. Se il rallentamento è
il risultato di un comportamento inatteso del server remoto, il programma
ftp
locale deve essere terminato manualmente.
I file specificati come argomenti nei comandi
ftp
sono profcessati in accordo alle seguenti
regole.
-
’ è usato
stdin (per leggere) o stdout
(per scrivere).Ftp
aper quindi una nuova shell, usando
popen(3) con l'argomento fornito, e legge (scrive)
dall'stdout (stdin). Se il comando shell include spazi, l'argomento deve
essere virgolettato; es. “" ls -lt"”. Un esempio
particolarmente utile di questo meccanismo è: “dir
more”.glob
.
se il comando ftp
aspetta un singolo file locale
(es. put
), è usato solo il primo nome di
file generato dall'operazione di "globbing".mget
e get
con i nomi dei file locali non specificati, il nome file locale è
il nome del file remoto, che può venire alterato da un'impostazione
case
, ntrans
, o
nmap
. Il nome file risultante può quindi
essere alterato se runique
è attivo.mput
e put
con i nomi dei file remoti non specificati, il nome file remoto è
il nome del file locale, che può venire alterato da un'impostazione
ntrans
o nmap
. Il nome
file risultante può quindi essere alterato se
sunique
è attivo.La specifica di FTP specifica molti parametri che possono
impattare su un trasferimento file. Il tipo
può essere uno tra “ascii”, “image”
(binary), “ebcdic”, and “local byte size” (di
solito per PDP-10's e PDP-20's ). Ftp
supporta i
tipi di trasferimento file ascii e image, più una dimensione del byte
locale di 8 per i modi di trasferimento tenex
.
Ftp
supporta solo i valori predefiniti per
i parametri di trasferimento file rimanenti: mode
,
form
, e struct
.
Il file .netrc contiene informazioni di login e inizializzazione usate dal processo di auto-login. Esso risiede nella home directory dell'utente. Vengono riconosciuti i seguenti token; essi devono essere separati da spazi, tabulazioni, o new-line:
machine
namemachine
che corrisponda alla macchina remota
specificata nella linea di comando ftp
o come un
argomento del comando open
. Quando viene trovata
la corrispondenza i successivi token .netrc sono
processati, arrestandosi quando viene raggiunta la fine del file o viene
incontrata un altra macchina
o un token
default
.default
machine
name con la differenza che
default
corrisponde a qualunque nome. Può
esserci solo un token default,
e deve essere dopo
tutti i token machine
. Questo di solito è
usato come:
default login anonymous password
user@site
dando così all'utente un login ftp anonimo
automatico alle maccine non specificate in
.netrc. Questo può essere sovrascritto
usando il flag -n
per disabilitare
l'auto-login.
login
nomepassword
stringftp
abortirà il processo di auto-login se
.netrc non è leggibile da nessuno a parte
l'utente.account
stringACCT
se non lo fa.macdef
nomeftp
macdef
. Una macro
è definita con il nome specificato; il suo contenuto inizia con la
successiva linea di .netrc e continua fino a
quando incontra una linea null (caratteri new-line consecutivi). Se
è definita una macro chiamata init
essa
è automaticamente eseguita come ultimo passo nel processo di
auto-login.Ftp
utilizza le seguenti variabili
d'ambiente.
Il comando ftp
è apparso in
4.2BSD.
La corretta esecuzione di molti comandi dipende dall'ambiente appropriato del server remoto.
E' stato corretto un errore nel trattamento dei caratteri di invio nel codice del trasferimento in modo ascii in 4.2BSD Questa correzione può comportare trasferimenti scorretti di file binari da e verso server 4.2BSD usando il tipo ascii. Evitare questo problema usando il tipo immagine binaria.
9 ottobre 1994 | BSD 4.2 |