菜鸟科技网

ftp拷贝命令

交互式FTP命令(最常用)

这是最传统的方式,通过命令行登录到FTP服务器,然后逐条输入命令进行操作。

ftp拷贝命令-图1
(图片来源网络,侵删)

登录和连接服务器

你需要连接到FTP服务器。

ftp ftp.example.com
# 或者
ftp 192.168.1.100

系统会提示你输入用户名和密码进行登录。

  • 匿名登录:如果允许,用户名用 anonymous,密码用你的邮箱地址或任意字符串。

核心拷贝命令

登录成功后,你会看到 ftp> 提示符,这时就可以输入以下命令了。


下载文件(从服务器到本地)

命令 全称 说明 示例
get Get 下载单个文件,这是最常用的下载命令。 get remote_file.txt local_file.txt
(下载服务器上的 remote_file.txt 并保存为本地 local_file.txt,如果省略本地文件名,则同名保存)
mget Multiple Get 批量下载多个文件,可以配合通配符使用。 mget *.log
(下载服务器上所有以 .log 结尾的文件)
mget data_?.csv
(下载 data_1.csv, data_2.csv 等)

上传文件(从本地到服务器)

命令 全称 说明 示例
put Put 上传单个文件,这是最常用的上传命令。 put local_file.txt remote_file.txt
(上传本地的 local_file.txt 到服务器并命名为 remote_file.txt,如果省略远程文件名,则同名上传)
mput Multiple Put 批量上传多个文件,可以配合通配符使用。 mput *.txt
(上传本地所有以 .txt 结尾的文件)
mput report_*.pdf
(上传 report_1.pdf, report_2.pdf 等)

必须配合使用的辅助命令

在使用 get/put 之前,必须设置好本地和远程的路径,否则文件会找不到或传错位置。

ftp拷贝命令-图2
(图片来源网络,侵删)
命令 全称 说明 示例
lcd Local Change Directory 切换本地(客户端)的工作目录 lcd /path/to/your/local/files
(确保你要上传/下载的文件在当前本地目录下)
cd Change Directory 切换远程(服务器)的工作目录 cd /path/to/remote/directory
(切换到服务器上的目标目录)
pwd Print Working Directory 显示当前远程(服务器)的工作目录 pwd
(确认你当前在服务器的哪个位置)
ls List 列出远程(服务器)当前目录下的文件和文件夹 ls
ls -l (更详细的列表,类似Linux的ls -l)
!ls (shell command) 执行本地(客户端)的shell命令 !ls
(查看本地当前目录有哪些文件)
binary / bin Binary Mode 设置传输模式为二进制强烈建议在传输所有文件前都执行此命令! binary
(防止传输图片、压缩包、可执行文件等时出现损坏)
ascii ASCII Mode 设置传输模式为ASCII(文本),仅用于传输纯文本文件。 ascii
prompt Prompt 关闭交互式提示,在使用 mgetmput 时,默认每个文件传输前都会询问 y/n,输入 prompt off 可以取消这些提示,实现全自动批量传输。 prompt off
byequit 退出FTP会话 bye

完整操作示例

示例1:从服务器下载一个文件

# 1. 连接服务器
$ ftp ftp.example.com
Connected to ftp.example.com.
220 (vsFTPd 3.0.3)
Name (ftp.example.com:your_user): myuser
331 Please specify the password.
Password: ********
230 Login successful.
# 2. 确认位置和文件
ftp> pwd
257 "/home/myuser"
ftp> ls
227 Entering Passive Mode (192,168,1,100,12,34)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 1234 Jan 01 12:00 important_file.zip
226 Directory send OK.
# 3. 设置本地保存路径和传输模式
ftp> lcd /home/user/Downloads
Local directory now /home/user/Downloads
ftp> binary
# 4. 下载文件
ftp> get important_file.zip
local: important_file.zip remote: important_file.zip
227 Entering Passive Mode (192,168,1,100,56,78)
150 Opening BINARY mode data connection for important_file.zip (1234 bytes).
226 File send OK.
1234 bytes received in 0.01 secs (123.4 Kbytes/sec)
# 5. 退出
ftp> bye
221 Goodbye.

示例2:向服务器批量上传文件

# 1. 连接并登录... (同上)
# 2. 切换到服务器目标目录
ftp> cd /home/myuser/uploads
250 Directory successfully changed.
# 3. 设置本地路径和关闭提示
ftp> lcd /path/to/my/project/files
Local directory now /path/to/my/project/files
ftp> prompt off
# 4. 设置二进制模式并批量上传
ftp> binary
ftp> mput *.csv
local: data_1.csv remote: data_1.csv
227 Entering Passive Mode...
150 Ok to send data.
226 File send OK.
local: data_2.csv remote: data_2.csv
... (继续上传其他文件) ...
# 5. 退出
ftp> bye

更现代的替代方案

虽然FTP很经典,但它有明显的缺点:

  • 不安全:所有用户名、密码和文件内容都是明文传输的,极易被窃听。
  • 功能有限:没有现代协议(如SFTP)的权限管理、文件属性等功能。

在现代生产环境中,强烈推荐使用更安全的替代方案。

ftp拷贝命令-图3
(图片来源网络,侵删)

sftp - 基于 SSH 的安全文件传输

SFTP (SSH File Transfer Protocol) 运行在SSH之上,所有传输都是加密的,它的命令和FTP非常相似,但更安全。

基本用法:

# 连接服务器(会提示输入密码)
$ sftp myuser@ftp.example.com
# 连接后,sftp的提示符是 sftp>
sftp> 
# 常用命令(和FTP类似,但更强大)
sftp> pwd       # 查看远程路径
sftp> lpwd      # 查看本地路径
sftp> lcd /path/to/local # 切换本地路径
sftp> cd /path/to/remote # 切换远程路径
sftp> ls        # 列出远程文件
sftp> !ls       # 列出本地文件
sftp> get file.txt # 下载单个文件
sftp> mget *.log   # 批量下载
sftp> put file.txt # 上传单个文件
sftp> mput *.log   # 批量上传
sftp> bye       # 退出

scp - 安全的远程拷贝

SCP (Secure Copy) 是一个简单的命令行工具,用于在主机之间安全地复制文件,它适合一次性的、点对点的文件拷贝,不适合复杂的目录操作。

基本用法:

# 从本地拷贝文件到远程服务器
# 语法: scp [本地文件路径] [用户@远程主机:远程路径]
$ scp /home/user/file.txt myuser@ftp.example.com:/home/myuser/
# 从远程服务器拷贝文件到本地
# 语法: scp [用户@远程主机:远程路径] [本地文件路径]
$ scp myuser@ftp.example.com:/home/myuser/remote_file.zip /home/user/Downloads/
# 拷贝整个目录(需要加 -r 参数)
$ scp -r /home/user/my_folder/ myuser@ftp.example.com:/home/myuser/

总结对比

特性 ftp (经典) sftp (推荐) scp (简单)
安全性 不安全 (明文) 安全 (SSH加密) 安全 (SSH加密)
协议 FTP SFTP (over SSH) SCP (over SSH)
交互性 强,支持目录浏览和批量操作 强,类似FTP,支持目录浏览和批量操作 弱,主要是单文件/目录的点对点拷贝
使用场景 老旧系统、特定需求 日常服务器文件管理 快速、一次性的文件/目录传输
命令 get, put, mget, mput get, put, mget, mput scp
  • 学习FTP:了解其基本原理和命令有助于维护旧系统。
  • 日常使用请务必使用 sftp,它在安全性和易用性之间取得了很好的平衡。
  • 快速拷贝:对于简单的文件复制,scp 非常方便。
分享:
扫描分享到社交APP
上一篇
下一篇