Como utilizar um FTP
Autor: Rodrigues dos Santos | Publicado: 2012-03-19T10:42:00-07:00



Como utilizar um FTP


Como usar o FTP

FTP é um comando utilizado para transferir arquivos de uma máquina para outra, sejam estas remotas ou não. A máquina na qual o comando é executado é chamada máquina local, e a máquina para onde ou de onde, se deseja transferir arquivos é chamada máquina remota. O nome da máquina remota pode ser especificado de duas maneiras:&nbsp;

diretamente pela linha de comando digitando-se "ftp nome-máquina-remota".Exemplo:
prompt&gt; ftp spfec02.fec.unicamp.br ouprompt&gt; ftp obelix.unicamp.br

pela linha de comando do interpretador ftp, utilizando o comando&nbsp;open, tendo como argumento o nome da máquina remota. Para entrar no interpretador de comandos do ftp basta digitar "ftp" na linha de comando. O prompt do interpretador então irá aparecer (ftp&gt;).Exemplo:
prompt&gt; ftpftp&gt; open spfec02.fec.unicamp.br



A partir do momento que a máquina remota foi especificada, o&nbsp;ftp&nbsp;tentará estabelecer um conexão com ela, verificando se tal máquina com tal nome existe e se está acessível. Caso seja bem sucedido, o ftp requisitará o login e a senha do usuário para máquina remota.Exemplo:

prompt\&gt; ftp spfec02.fec.unicamp.brConnected to spfec02.fec.unicamp.br220 spfec02 FTP server (UNIX(r) System V Release 4.0) ready.Name (spfec02.fec.unicamp.br:): fulano331 Password required for fulano.Password:230 User fulano logged in.ftp&gt;&nbsp;
Caso a ação de login seja bem sucedida, pode-se então iniciar a transferência de arquivos entre amáquina local&nbsp;e a&nbsp;máquina remota, utilizando-se os comandos&nbsp;put/mput&nbsp;(local -&gt; remota) e os comandosget/mget&nbsp;(remota &gt; local). Mas antes disso, é bom certificar-se sobre os diretórios de trabalho local e remoto (lcd/cd/pwd), sobre o tipo de representação na transferência dos arquivos (ascii/bin) e quais os nomes dos arquivos que serão transferidos (ls/dir).
Se a ação de login não for bem sucedida (como no caso de erros de digitação ou devido ao usuário especificado não ter acesso a máquina remota), pode-se então repetir o ação de login (comando&nbsp;user), (B máquina outra com conexão tentar ou&gt;disconnect e&nbsp;open), ou ainda sair do ftp (quit/bye).&nbsp;

Comando lcdO diretório de trabalho local (da máquina local) default será o mesmo de onde o comando ftp for executado. Para mudar o diretório local utilize o comando&nbsp;lcd&nbsp;com o nome do diretório para o qual se deseja mudar.Exemplo: Supondo que o diretório default seja /home/fulano (Unix) ou c:\usr\fulano (DOS) e deseja-se mudar para o subdiretório docs.
ftp&gt; lcd /home/fulano/docs (Unix)ouftp&gt; lcd c:\usr\fulano\docs (DOS)

Comando cd/pwdO diretório de trabalho remoto inicialmente será o diretório home do usuário. Para mudá-lo basta usar o comando cd (change directory), passando o nome do novo diretório como argumento. O comando pwd mostra qual é o diretório de trabalho remoto corrente.
Comando ascii/binaryOs comandos&nbsp;ascii&nbsp;e&nbsp;binary&nbsp;(ou&nbsp;bin) modificam o tipo de representação dos dados que serão transferidos. O default é o tipo ASCII. Porém recomenda-se utilizar o tipo binário para assegurar o envio correto dos dados contidos nos arquivos. Para isso, basta digitar&nbsp;bin&nbsp;ou binary na linha de comando do interpretador. Para retornar ao tipo ASCII, basta digitar ascii.
Comando ls/dirOs comandos ls e dir listam o conteúdo de um determinado diretório remoto. Se nenhum diretório remoto for especificado, então o atual será listado. A diferença entre esses dois comandos é que ls imprime um listagem parcial do conteúdo do diretório.
Comando get/mgetO comando&nbsp;get&nbsp;recupera um arquivo da máquina remota e armazena-o na máquina local. Este comando transfere somente um arquivo por vez. Já com&nbsp;mget, pode-se transferir vários arquivos de uma vez. Como especificar então, os vários arquivos que se deseja transferir pelo&nbsp;mget? Pode-se fazê-lo, por exemplo:&nbsp;
todos os arquivos, um após o outro, separados por espaço
arquivos com a mesma extensão (ex.: *.doc, *.txt)
arquivos com a mesma cadeia inicial no nome (ex.: cap*.txt, trab*.doc)

Aqui estão alguns exemplos:
ftp&gt; get teste.txtftp&gt; mget teste1.txt trabalho.doc Welcome.htmlftp&gt; mget teste*.*ftp&gt; mget *.doc
Ao ser executado, o comando&nbsp;mget&nbsp;questiona cada um dos arquivos especificados se devem ser transferidos ou não. Isso ocorre pois o ftp está setado, por default, a operar em modo interativo. Para desabilitar o modo interativo, basta digitar "prompt". O comando&nbsp;prompt&nbsp;funciona como uma chave (switch), assim, quando acionado ou executado novamente ele irá habilitar o modo interativo.Exemplo:

ftp&gt; promptInteractive mode off.ftp&gt; promptInteractive mode on.ftp&gt;

Comando put/mputEstes comandos fazem o inverso dos comandos get/mget, ou seja, armazenam arquivos locais na máquina remota. Assim como get, put transmite somente um arquivo por vez, e mput pode transmitir vários arquivos por vez (como mget). A especificaçao dos arquivos é feita de forma semelhante a get/mget.
Comando disconnect/openO comando&nbsp;disconnect&nbsp;faz com que a conexão com a máquina remota seja quebrada, caso haja uma conexão. O comando&nbsp;open&nbsp;abre uma conexão com uma máquina remota, desde que não haja nenhuma conexão com outra máquina remota. Caso haja conexão, deve-se interrompê-la para usar o comandoopen.
Comando quit/byeO comando&nbsp;disconnect, apesar de interromper a conexão com uma máquina remota, não faz o ftp sair de seu interpretador de comandos. Para sair do ftp digite&nbsp;bye&nbsp;ou&nbsp;quit.
Outros ComandosHá outros comandos que o intepretador ftp aceita. Com eles pode-se, por exemplo, criar diretórios, renomear arquivos e apagar arquivos. Para ver quais são os comandos que o interpretador aceita, basta digitar&nbsp;?. Outro comando útil é&nbsp;help, que descreve brevemente o comando passado como argumento.Exemplo:

ftp&gt; ?
Commands may be abbreviated.  Commands are:

!  cr  macdef  proxy  send
$  delete  mdelete  sendport status
account  debug  mdir  put  struct
append  dir  mget  pwd  sunique
ascii  disconnect mkdir  quit  tenex
bell  form  mls  quote  trace
binary  get  mode  recv  type
bye  glob  mput  remotehelp user
case  hash  nmap  rename  verbose
cd  help  ntrans  reset  ?
cdup  lcd  open  rmdir
close  ls  prompt  runique
ftp&gt; help put
put        send one file
ftp&gt; 

Exemplos de utilização do ftp
get e mget

c:\usr\fulano\&gt; ftp spfec02.fec.unicamp.br 
Connected to spfec02.fec.unicamp.br.
220 spfec02 FTP server (UNIX(r) System V Release 4.0) ready.
Name (spfec02.fec.unicamp.br:&lt;none&gt;): fulano 
331 Password required for fulano.
Password:
230 User fulano logged in.
ftp&gt; ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (143.106.4.122,35420) (0 bytes).
teste1.txt
teste2.ex2
teste3.ex3
teste4.ex4
trabalho.doc
226 ASCII Transfer complete.
62 bytes received in 0.079 seconds (0.77 Kbytes/s)
ftp&gt; pwd
257 "/home/fulano" is current directory.
ftp&gt; lcd
Local directory now c:\usr\fulano
ftp&gt; bin
200 Type set to I.
ftp&gt; get trabalho.doc
200 PORT command successful.
150 Binary data connection for trabalho.doc (143.106.4.122,35421) (7 bytes).
226 Binary Transfer complete.
local: trabalho.doc remote: trabalho.doc
7 bytes received in 0.024 seconds (0.29 Kbytes/s)
ftp&gt; mget teste*.*
mget teste1.txt? y
200 PORT command successful.
150 Binary data connection for teste1.txt (143.106.4.122,35423) (7 bytes).
226 Binary Transfer complete.
local: teste1.txt remote: teste1.txt
7 bytes received in 0.015 seconds (0.45 Kbytes/s)
mget teste2.ex2? y
200 PORT command successful.
150 Binary data connection for teste2.ex2 (143.106.4.122,35424) (7 bytes).
226 Binary Transfer complete.
local: teste2.ex2 remote: teste2.ex2
7 bytes received in 0.026 seconds (0.26 Kbytes/s)
mget teste3.ex3? y
200 PORT command successful.
150 Binary data connection for teste3.ex3 (143.106.4.122,35425) (7 bytes).
226 Binary Transfer complete.
local: teste3.ex3 remote: teste3.ex3
7 bytes received in 0.015 seconds (0.45 Kbytes/s)
mget teste4.ex4? n
ftp&gt; disconnect
221 Goodbye.
ftp&gt; open obelix.unicamp.br
Connected to obelix.unicamp.br.
220 obelix FTP server (UNIX(r) System V Release 4.0) ready.
Name (obelix.unicamp.br:&lt;none&gt;): fulano
530 User fulano access denied.
Login failed.
ftp&gt; disconnect
221 Goodbye.
ftp&gt; open spfec02
Connected to spfec02.fec.unicamp.br.
220 spfec02 FTP server (UNIX(r) System V Release 4.0) ready.
Name (spfec02:fulano): 
331 Password required for fulano
Password:
530 Login incorrect.
Login failed.
ftp&gt; user fulano
331 Password required for fulano.
Password: 
230 User fulano logged in.
ftp&gt; ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (143.106.4.122,35420) (0 bytes).
teste1.txt
teste2.ex2
teste3.ex3
teste4.ex4
trabalho.doc
226 ASCII Transfer complete.
62 bytes received in 0.079 seconds (0.77 Kbytes/s)
ftp&gt; quit
221 Goodbye.

c:\usr\fulano\&gt; dir

 O volume na unidade C não tem nome.
 O número de srie do volume  04D9-B769

 Pasta de C:\usr\fulano

12/10/97  17:21         &lt;DIR&gt;          .
12/10/97  17:21         &lt;DIR&gt;          ..
16/10/97  19:06                  2.564 teste1.txt
16/10/97  19:06                  2.947 teste2.ex2
16/10/97  19:06                  5.679 teste3.ex3
16/10/97  19:06                 26.912 trabalho.doc 

           5 arquivo(s)         38.102 bytes
                           111.032.444 bytes disponíveis

c:\usr\fulano\&gt; 

put e mput

c:\usr\beltrano\&gt; dir

 O volume na unidade C não tem nome.
 O número de srie do volume  04D9-B769

 Pasta de C:\usr\beltrano

12/10/97  17:21         &lt;DIR&gt;          .
12/10/97  17:21         &lt;DIR&gt;          ..
16/10/97  19:06                  2.564 Image34.gif
17/10/97  13:29                  2.947 Image35.gif
12/10/97  04:09                  5.679 welcome.htm
25/10/97  10:09                 26.912 ec303.doc
06/11/97  10:20                 25.088 ec193.doc

           5 arquivo(s)         63.190 bytes
                           270.840.320 bytes disponíveis

c:\usr\beltrano\&gt; ftp
ftp&gt; open spfec02
Connected to spfec02.fec.unicamp.br.
220 spfec02 FTP server (UNIX(r) System V Release 4.0) ready.
Name (spfec02:&lt;none&gt;): beltrano
331 Password required for beltrano
Password:
230 User beltrano logged in.
ftp&gt; dir
200 PORT command successful.
150 ASCII data connection for /bin/ls (143.106.4.122,35447) (0 bytes).
total 802
-rw-r--r--   1 beltrano  grad        1942 Nov  6 10:06 Welcome.html
-rw-r--r--   1 beltrano  grad        7060 Oct 14 15:17 autodesk.gif
-rw-r--r--   1 beltrano  grad       35351 Oct 14 15:17 engine.gif
drwxr-xr-x   2 beltrano  grad         512 Oct 23 21:42 docs
-rw-r--r--   1 beltrano  grad          65 Oct 17 16:45 minhalinha.gif
-rw-r--r--   1 beltrano  grad       57361 Oct 14 15:17 tb_charg.gif
-rw-r--r--   1 beltrano  grad        1406 Oct  2 10:24 unicamp.gif
226 ASCII Transfer complete.
1344 bytes received in 0.27 seconds (4.8 Kbytes/s)
ftp&gt; pwd
Local directory now /home/beltrano
ftp&gt; cd docs
Local directory now /home/beltrano/docs
ftp&gt; ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (143.106.4.122,35449) (0 bytes).
acomod1.doc
acomod2.doc
acomod3.doc
226 ASCII Transfer complete.
126 bytes received in 0.056 seconds (2.2 Kbytes/s)
ftp&gt; bin
200 Type set to I.
ftp&gt; prompt
Interactive mode off.
ftp&gt; put welcome.htm 
200 PORT command successful.
150 Binary data connection for Welcome.htm (143.106.4.122,35433).
226 Transfer complete.
local: welcome.htm remote: welcome.htm
7 bytes sent in 0.00047 seconds (15 Kbytes/s)
ftp&gt; mput ec*.doc
200 PORT command successful.
150 Binary data connection for ec193.doc (143.106.4.122,35434).
226 Transfer complete.
local: ec193.doc remote: ec193.doc
7 bytes sent in 0.00038 seconds (18 Kbytes/s)
200 PORT command successful.
150 Binary data connection for ec303.doc (143.106.4.122,35435).
226 Transfer complete.
local: ec303.doc remote: ec303.doc
7 bytes sent in 0.00034 seconds (20 Kbytes/s)
ftp&gt; ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (143.106.4.122,35436) (0 bytes).
acomod1.doc
acomod2.doc
acomod3.doc
ec193.doc
ec303.doc
welcome.htm
226 ASCII Transfer complete.
35 bytes received in 0.013 seconds (2.6 Kbytes/s)
ftp&gt; bye
221 Goodbye.

c:\usr\beltrano\&gt; 


Maiores informações podem ser encontradas pelo comando man do Unix (man ftp).

RESUMO:

Em linhas gerais, para quem deseja um resumo dos comandos e funções é so imprimir abaixo:


COMANDO

ARGUMENTO

FUNÇÃO

bin&nbsp;Altera o modo de transferência para binário (usado para transferência de elementos gráficos, arquivos ZIP etc.)
chdir[ nome do diretório ]Altera nosso diretório
cd[ nome do diretório remoto ]Muda o diretório de trabalho na máquina remota.
cdup[ nome do diretório remoto ]Muda o diretório de trabalho para o diretório "pai" (superior) do diretório atual.
dir&nbsp;Lista o conteúdo do diretório da máquina remota, colocando o resultado na máquina local.Se nenhum diretório remoto for especificado, o diretório de trabalho atual na máquina remota será utilizado.Se nenhum arquivo na máquina local for especificado para receber a lista do diretório remoto, o resultado é enviado para o terminal.&nbsp;
!dir[ dir_local ] [ arq_local ]Em alguns sistemas ftp, este comando lista o conteúdo de um diretório da máquina local.
disconnect&nbsp;O comando&nbsp;disconnect&nbsp;faz com que a conexão com a máquina remota seja quebrada, caso haja uma conexão.
get[ nome_arq ]Transfere arquivos do servidor remoto de FTP para sua unidade de disco local.Se um nome de arquivo_local não for especificado, é dado o mesmo nome do arquivo na máquina remota.
lcd[ diretório ]Muda o diretório de trabalho na máquina local.Se nenhum diretório for especificado, o diretório "home" do usuário é utilizado.
ls[ dir_remoto ] [ arq_local ]Dá uma listagem do conteúdo de um diretório da máquina remota. Se não for especificado um diretório remoto, é mostrada a listagem do diretório de trabalho usado.Se nenhum arquivo local for especificado, a listagem é mostrada na tela.
mget[ nome_arq ]Transfere vários arquivos (usando curingas) do servidor remoto de FTP para sua unidade de disco local
mkdir[ nome do diretorio]Cria um diretório
mput[ nome_arq ]Transfere vários arquivos (usando curingas) da sua unidade de disco local para o host remoto de FTP
open&nbsp;O comando&nbsp;open&nbsp;abre uma conexão com uma máquina remota, desde que não haja nenhuma conexão com outra máquina remota. Caso haja conexão, deve-se interrompê-la para usar o comando&nbsp;open.
put[ nome_arq ]Transfere arquivos de sua unidade de disco local para o servidor remoto de FTP
prompt&nbsp;Ativa e desativa avisos de confirmação durante o uso dos comandos mput e mget
pwd&nbsp;Exibe o conteúdo atual do servidor do Yahoo! GeoCities
quit/bye&nbsp;O comando&nbsp;disconnect, apesar de interromper a conexão com uma máquina remota, não faz o ftp sair de seu interpretador de comandos. Para sair do ftp digite&nbsp;bye&nbsp;ou&nbsp;quit.
rmdir[ nome do diretório ]Remove um diretório
?&nbsp;Lista vários comandos
?[comando]Lista uma ajuda simples para esse &lt;comando&gt;