Skip to main content

ftp command

Detailed Explanation

The ftp command is the user interface to the Internet standard File Transfer Protocol (FTP). It allows users to transfer files to and from a remote network site. Like telnet, standard FTP is insecure because it transfers data and credentials in plaintext. Secure alternatives include SFTP (SSH File Transfer Protocol) or FTPS (FTP over SSL/TLS).

Basic Syntax

ftp [options] [host]

Common Flags/Options

OptionDescription
-pUse passive mode for data transfers. Allows use in environments where a firewall prevents connections from the outside world.
-iTurns off interactive prompting during multiple file transfers.
-nRestrains ftp from attempting "auto-login" upon initial connection.

Common Interactive Commands

Once connected to an FTP prompt (ftp> ), you can use these commands:

  • ls or dir: List files in the remote directory.
  • cd: Change directory on the remote server.
  • lcd: Change directory on your local machine.
  • get <file>: Download a single file.
  • mget <pattern>: Download multiple files.
  • put <file>: Upload a single file.
  • mput <pattern>: Upload multiple files.
  • bin: Switch to binary transfer mode (essential for non-text files).
  • ascii: Switch to ASCII transfer mode (for text files).
  • quit or bye: Exit the FTP session.

Real-world Examples

Connect to an FTP server:

ftp ftp.example.com

Connect using passive mode (often needed behind NAT/firewalls):

ftp -p ftp.example.com

(Inside the FTP prompt) Download a file:

ftp> get readme.txt