in

Comandos FTP Linux/UNIX

O protocolo de transferência de arquivos (FTP) é um protocolo de rede usado para copiar um arquivo de um computador para outro através da Internet ou LAN. O FTP segue uma arquitetura cliente-servidor que utiliza conexões de controle e dados diferentes entre o cliente ftp e o servidor. A porta padrão para ftp é 21.

Q: Troquei do computador MS-Windows para Mac executando sistemas OS X UNIX. Eu preciso transferir e baixar arquivos usando ftp para o meu site pessoal. Você pode me fornecer uma lista de comandos de FTP que podem ser enviados para um servidor FTP, para carregar e baixar arquivos usando o cliente de linha de comando FTP UNIX/Linux?

O protocolo de transferência de arquivos (FTP) é um protocolo de rede usado para copiar um arquivo de um computador para outro através da Internet ou LAN. Ele segue uma arquitetura cliente-servidor que utiliza conexões de controle e dados diferentes entre o cliente e o servidor. A porta padrão para ftp é 21.

AVISO: Esses exemplos usam o protocolo/cliente ftp inseguro e, se executado, você estará aberto a vários ataques, incluindo o snooping da senha. Eu recomendo que você use sftp, a versão segura do FTP. Basta digitar sftp em todos os comandos a seguir e devem funcionar.

ftp: protocolo de transferência de arquivos na Internet

Use a seguinte sintaxe para se conectar e transferir arquivos para/de um site de rede remota:

ftp ftp.example.com
ftp 1.2.3.4
ftp [email protected]

Você deve conhecer o nome de usuário e a senha para autenticação de senha baseada em usuário. Caso seja com acesso de usuário anônimo use ftp como nome de usuário e senha. Neste exemplo, você está se conectando ao ftp.freebsd.org com acesso ao usuário anônimo (abra o terminal e digite o seguinte comando):

ftp ftp.freebsd.org

Deve retornar algo semelhante a isto:

Trying 87.51.34.132...
Connected to ftp.freebsd.org.
220 ftp.beastie.tdk.net FTP server (Version 6.00LS) ready.
Name (ftp.freebsd.org:vivek): ftp
331 Guest login ok, send your email address as password.
Password: 
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Quando você insere seu próprio nome de usuário e senha para o servidor ftp.example.com, ele retorna o prompt:

ftp>

Você precisa digitar todos os comandos dentro do prompt ftp>. Por exemplo, caso você quisesse acessar/manipular um banco de dados precisaria fazer isso no prompt mysql>.

Tarefas: Lista de arquivos atuais

Digite o comando ls no prompt:

ftp> ls

Deve retornar algo semelhante a isto:

229 Entering Extended Passive Mode (|||60692|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 10
drwxrwxr-x  2 0     5      512 Jul 19  2007 .snap
drwx------  2 0     0     2048 Jul 19  2007 lost+found
drwxr-xr-x  3 1006  1006   512 Sep 21  2009 pub
drwxr-xr-x  3 1006  1006   512 Jun  5  2007 sup
drwxr-xr-x  4 1006  0      512 Sep 18  2009 www
226 Transfer complete.
ftp>

Acima é listado os nomes dos arquivos no diretório remoto atual (o último nome é nome do arquivo ou do diretório).

Tarefas: Alterar o Diretório

Para alterar o diretório na máquina remota, use o comando cd:

ftp> cd dirName

Para mudar para o diretório pub, digite:

ftp> cd pub

Deve retornar algo parecido com isto:

250 CWD command successful.

Tarefas: Baixar/Copiar arquivo

Para copiar um arquivo de cada vez do servidor remoto para o sistema local utilize o comando get:

get fileName
get fileName newFileName

Neste exemplo, baixe o arquivo resume.pdf no diretório remoto atual para (ou em cima) de um arquivo com o mesmo nome, resume.pdf, no seu diretório local:

ftp> get resume.pdf

Deve retornar algo parecido com isto:

local: resume.pdf remote: resume.pdf
229 Entering Extended Passive Mode (|||55093|)
150 Opening BINARY mode data connection for 'resume.pdf' (53077 bytes).
100% |*********************************************************************| 53077 12.58 KiB/s 00:00 ETA
226 Transfer complete.
53077 bytes received in 00:04 (12.57 KiB/s)

Neste exemplo, copie o arquivo data.tar.gz no diretório remoto atual para (ou em cima) um arquivo chamado backup.tar.gz no seu diretório local:

ftp> get data.tar.gz backup.tar.gz

Alterando Diretório Local

Para alterar o diretório em seu sistema local, digite:

ftp> lcd /path/to/new/dir
ftp> lcd /tmp

Deve retornar algo semelhante a isto:

Local directory now: /tmp

Imprimir diretório local:

ftp> lpwd

Deve retornar algo semelhante a isto:

/tmp

O comando lpwd imprime o diretório de download atual para sistemas locais. No entanto, para descobrir o caminho do diretório atual no servidor ftp remoto, digite:

ftp> pwd

Deve retornar algo semelhante a isto:

Remote directory: /pub/FreeBSD

Tarefas: Baixando Vários Arquivos

Você precisa usar o comando mget da seguinte forma para copiar vários arquivos do servidor ftp remoto para o sistema local. Você pode ser solicitado para uma resposta de sim/não (Y / N) antes de transferir cada arquivo (você pode desativar o prompt passando a opção -i para o cliente ftp). Para baixar todos os arquivos, digite:

ftp> mget *

Para baixar todos os arquivos perl (que terminam com extensão .pl), digite:

ftp> mget *.pl

Ativar/Desativar Prompting Interativo

O prompt de comando ftp define a solicitação interativa; “On” permite a solicitação para que você possa verificar cada passo dos múltiplos comandos, “Off” permite que os comandos atuem sem impedimento:

ftp> prompt on
ftp> mput *.php
ftp> prompt off 
ftp> mget *.py

Tarefas: Apagar Arquivos

Para excluir um arquivo no diretório remoto atual use o comando delete:

ftp> delete fileName
ftp> delete output.jpg

Tarefas: Carregar um arquivo

Para copiar um arquivo de cada vez do sistema local para o servidor remoto, digite:

ftp> put fileName

Neste exemplo, carregue logo.jpg, digite:

ftp> put logo.jpg

Tarefas: Carregar vários arquivos

Para copiar vários arquivos do sistema local para o servidor ftp remoto use o comando mput. Novamente, você pode ser solicitado para uma resposta de sim/não (Y / N) antes de transferir cada arquivo. Neste exemplo, faça o upload de todos os arquivos do sistema atual:

ftp> mput *
ftp> mput *.pl

Tarefas: Crie um diretório

Para criar um novo diretório, execute o comando:

ftp> mkdir dirName
ftp> mkdir scripts
ftp> cd scripts
ftp> pwd

Tarefas: Apagar um diretório

Para remover um diretório, execute o comando:

ftp> rmdir dirName
ftp> rmdir images
ftp> ls

Tarefas: Definir o modo de transferência de arquivos

Para configurar o modo de transferência de arquivos para ASCII, digite:

ftp> ascii

Observe que ascii é o padrão, bom para arquivos de texto. Para configurar o modo de transferência de arquivo para binário, digite:

ftp> binary

O modo binário é recomendado para quase todos os tipos de arquivos, incluindo imagens, arquivos zip e muito mais. O modo binário oferece menos chance de um erro de transmissão.

Tarefas: Conecte-se a outro servidor de FTP

Para abrir uma conexão com outro servidor ftp, digite:

ftp> open ftp.nixcraft.net.in

O comando acima abre uma nova conexão FTP com ftp.nixcraft.net.in. Você deve fornecer um nome de usuário e senha para uma conta ftp.nixcraft.net.in. No entanto, um nome de usuário e senha podem ser ignorados para uma conexão FTP anônima.

Tarefas: Saindo da sessão FTP

Digite quit ou bye, pressione enter:

ftp> quit

Ou

ftp> bye

Deve retornar um comando parecido com isto:

221 Goodbye.

Como faço para obter mais informações sobre os comandos do FTP?

Escreva ? ou help para obter mais informações sobre os comandos de FTP:

ftp> ?
ftp> help

Deve retornar um comando parecido com isto:

Commands may be abbreviated.  Commands are:

!		delete		idle		mode		pmlsd		reset		system
$		dir		image		modtime		preserve	restart		tenex
account		disconnect	lcd		more		progress	rhelp		throttle
append		edit		less		mput		prompt		rmdir		trace
ascii		epsv4		lpage		mreget		proxy		rstatus		type
bell		exit		lpwd		msend		put		runique		umask
binary		features	ls		newer		pwd		send		unset
bye		fget		macdef		nlist		quit		sendport	usage
case		form		mdelete		nmap		quote		set		user
cd		ftp		mdir		ntrans		rate		site		verbose
cdup		gate		mget		open		rcvbuf		size		xferbuf
chmod		get		mkdir		page		recv		sndbuf		?
close		glob		mls		passive		reget		status
cr		hash		mlsd		pdir		remopts		struct
debug		help		mlst		pls		rename		sunique

Para obter uma breve descrição sobre cada comando, digite:

ftp> help commandName
ftp> help chmod

Deve retornar algo parecido com isto:

chmod      	change file permissions of remote file

Digite:

ftp> help ls

Deve retornar algo parecido com isto:

ls         	list contents of remote path

FTP Através de um Navegador

Se você não deseja digitar os comandos, use um navegador como Safari, Firefox e digite o seguinte:

ftp://[email protected]
ftp://ftp.freebsd.org/
ftp://[email protected]/
ftp://userName:[email protected]/
ftp://ftp:[email protected]/

Deve retornar algo parecido com isto:

Tutorial de Comandos FTP Linux/UNIX

Hoje você conferiu uma lista com os principais comandos FTP Linux/Unix. Obrigado pela leitura, nos vemos na próxima semana.

Escrito por Edgar

Quem sou eu? Uma pessoa em constante mudança, buscando novas maneiras de pensar e transformar a interação humana com o mundo a sua volta, em resumo, sou um UX Designer em Portugal.

Na minha vida profissional, implementei soluções criativas para algumas brandings Brasileiras, Americanas (USA) e Europeias (Continente).