超详细FTP命令教程,轻松掌握文件上传下载
什么是FTP?
FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议。它允许用户在客户端和服务器之间上传(put/upload)和下载(get/download)文件。虽然现在有很多图形界面的FTP客户端,但掌握命令行的FTP操作对于开发者、系统管理员以及需要自动化文件传输任务的用户来说,仍然是一项非常有用的技能。
本教程将详细介绍常用的FTP命令,帮助你通过命令行轻松完成文件传输任务。
1. 连接到FTP服务器
首先,你需要在你的计算机上打开一个命令行终端(在Windows上是cmd或PowerShell,在macOS或Linux上是Terminal)。
open – 连接服务器
在终端中输入ftp并回车,你会进入FTP交互模式。然后使用open命令连接到目标服务器。
bash
ftp> open ftp.example.com
或者,你也可以在启动ftp时直接指定服务器地址:
bash
C:\> ftp ftp.example.com
连接成功后,服务器会提示你输入用户名和密码。
user & pass – 登录认证
Connected to ftp.example.com.
220 (vsFTPd 3.0.3)
Name (ftp.example.com:your_username): your_ftp_username
331 Please specify the password.
Password: your_ftp_password
230 Login successful.
输入正确的用户名和密码后,你将成功登录到FTP服务器。
2. 导航和查看文件
登录后,你会处于服务器上的一个默认目录(通常是你的用户主目录)。
pwd – 查看当前远程目录
Print Working Directory,此命令用于显示你在FTP服务器上的当前位置。
bash
ftp> pwd
257 "/home/your_ftp_username"
ls 或 dir – 列出文件和目录
这两个命令都可以用来列出远程服务器上当前目录的文件和文件夹。
bash
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 1024 Jan 15 10:30 file1.txt
drwxr-xr-x 2 ftp ftp 4096 Jan 14 09:00 documents
-rw-r--r-- 1 ftp ftp 2048 Jan 15 11:00 image.jpg
226 Directory send OK.
cd – 切换远程目录
Change Directory,用于进入指定的远程目录。
bash
ftp> cd documents
250 Directory successfully changed.
cdup – 返回上级目录
Change Directory Up,用于返回到上一级目录。
bash
ftp> cdup
250 Directory successfully changed.
lcd – 切换本地目录
Local Change Directory,这个命令非常有用,它用于更改你本地计算机上的当前目录。下载的文件将默认存放在这个目录。
bash
ftp> lcd C:\Users\YourUser\Downloads
Local directory now C:\Users\YourUser\Downloads.
3. 文件传输
这是FTP的核心功能:上传和下载文件。
get – 下载单个文件
从FTP服务器下载一个文件到你的本地目录。
bash
ftp> get file1.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for file1.txt (1024 bytes).
226 Transfer complete.
ftp: 1024 bytes received in 0.01Seconds 102.40Kbytes/sec.
你也可以在下载时为文件重命名:
bash
ftp> get file1.txt my_local_file.txt
put – 上传单个文件
将本地计算机上的一个文件上传到FTP服务器的当前目录。
bash
ftp> put "C:\Users\YourUser\Desktop\report.docx"
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for report.docx.
226 Transfer complete.
ftp: 30720 bytes sent in 0.02Seconds 1536.00Kbytes/sec.
同样,你可以在上传时指定新的文件名:
bash
ftp> put "C:\path\to\local\file.zip" remote_archive.zip
mget – 下载多个文件
Multiple Get,用于一次性下载多个文件。你可以使用通配符 *。
“`bash
下载所有 .txt 文件
ftp> mget *.txt
“`
mput – 上传多个文件
Multiple Put,用于一次性上传多个文件。
“`bash
上传所有 .jpg 文件
ftp> mput *.jpg
“`
4. 文件和目录管理
你还可以在FTP服务器上进行一些基本的文件管理操作。
mkdir – 创建目录
在远程服务器上创建一个新的目录。
bash
ftp> mkdir my_new_folder
257 "/home/your_ftp_username/my_new_folder" created
rmdir – 删除目录
删除远程服务器上的一个空目录。
bash
ftp> rmdir my_new_folder
250 Remove directory operation successful.
delete – 删除文件
删除远程服务器上的一个文件。
bash
ftp> delete old_file.txt
250 Delete operation successful.
mdelete – 删除多个文件
Multiple Delete,使用通配符删除多个文件。
bash
ftp> mdelete *.bak
rename – 重命名文件
bash
ftp> rename original_name.txt new_name.txt
350 Ready for RNTO.
250 Rename successful.
5. 其他重要命令
binary 和 ascii – 设置传输模式
binary: 二进制模式。在传输非纯文本文件(如图片、视频、压缩包、可执行文件等)时必须使用此模式,否则文件会损坏。ascii: ASCII(文本)模式。仅适用于传输纯文本文件(.txt, .html, .css等)。
强烈建议在开始任何文件传输前,先输入 binary 命令切换到二进制模式,这可以避免很多不必要的问题。
bash
ftp> binary
200 Switching to Binary mode.
hash – 显示传输进度
开启后,文件传输过程中会以 # 符号显示进度,对于大文件传输非常有用。
bash
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
prompt – 切换交互提示
在使用 mget 或 mput 时,默认情况下系统会为每个文件都询问你是否要传输。输入 prompt 命令可以关闭这个交互提示,自动完成所有匹配文件的传输。
bash
ftp> prompt
Interactive mode off.
status – 查看当前状态
显示当前FTP会话的详细状态,包括连接地址、传输模式等。
bash
ftp> status
Connected to ftp.example.com.
No proxy connection.
Mode: binary; Type: stream; Form: non-print; Structure: file.
Verbose: on; Bell: off; Prompting: on; Globbing: on.
Hash mark printing: on; Use of PORT cmds: on.
6. 断开连接
quit 或 bye
完成所有操作后,使用这两个命令中的任意一个来断开与服务器的连接并退出FTP客户端。
bash
ftp> bye
221 Goodbye.
结论与安全提示
掌握以上这些FTP命令,你就可以完全脱离图形界面,高效地完成各种文件传输和管理任务。
安全警告:标准的FTP协议在传输数据(包括用户名和密码)时是明文的,这意味着它存在安全风险。在生产环境或传输敏感数据时,强烈建议使用更安全的替代方案,如 SFTP (SSH File Transfer Protocol) 或 FTPS (FTP over SSL/TLS)。这些协议会对传输的数据进行加密,保障数据安全。