使用 ftp 命令获取服务器文件列表,主要依赖于 ls 或 dir 命令,以下是详细的操作步骤和常用技巧:
基本操作步骤
第一步:连接服务器
ftp <服务器IP或域名>
ftp 192.168.1.100
第二步:登录
系统会提示你输入用户名和密码:
Name (192.168.1.100:yourname): your_username Password:
第三步:获取文件列表
登录成功后,使用以下任一命令查看文件列表:
ls:列出当前目录下的文件和子目录(简洁模式)。dir:功能与ls类似,在某些 FTP 服务器上也支持。ls -l:以长格式列出文件详情(包括权限、大小、修改时间等),类似于 Linux 的ls -l。
示例:
ftp> ls ftp> dir ftp> ls -l
第四步:退出
ftp> bye # 或 ftp> quit
常用相关命令
| 命令 | 说明 |
|---|---|
cd <目录> |
切换远程服务器上的目录 |
lcd <目录> |
切换本地计算机上的目录 |
pwd |
显示远程服务器当前所在目录 |
lpwd |
显示本地计算机当前所在目录 |
get <文件名> |
下载单个文件 |
mget <文件模式> |
批量下载文件(如 .txt) |
put <文件名> |
上传单个文件 |
mput <文件模式> |
批量上传文件 |
示例会话
$ ftp 192.168.1.100 Connected to 192.168.1.100. 220 (vsFTPd 3.0.3) Name (192.168.1.100:john): john 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,1,100,224,150). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 1024 Jan 01 10:00 file1.txt -rw-r--r-- 1 0 0 2048 Jan 02 11:00 file2.pdf drwxr-xr-x 2 0 0 4096 Jan 03 09:00 subdir 226 Directory send OK. ftp> cd subdir 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (192,168,1,100,224,151). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 512 Jan 04 12:00 data.csv 226 Directory send OK. ftp> bye 221 Goodbye.
注意事项
-
被动模式(Passive Mode):
ls命令卡住或超时,可能是防火墙或 NAT 问题。- 尝试输入
passive命令切换被动模式:ftp> passive Passive mode on.
-
二进制 vs 文本模式:
- 对于文本文件,使用
模式。ascii
- 对于图片、压缩包等二进制文件,使用
binary模式。 - 设置命令:
ftp> binaryftp> ascii
- 对于文本文件,使用
安全性建议:
- 传统
ftp协议是明文传输,用户名和密码容易被窃听。 - 在生产环境中,建议使用 SFTP(SSH File Transfer Protocol)或 FTPS(FTP over SSL/TLS)来替代。
- SFTP 使用
sftp命令,语法类似但更安全。
- 传统
替代方案:使用 lftp 或 sftp
如果你需要更强大的功能(如断点续传、脚本化),推荐使用 lftp:
lftp -u username,password ftp://192.168.1.100 lftp 192.168.1.100:~> ls
或使用 SFTP(更安全):
sftp username@192.168.1.100 sftp> ls
希望这些信息对你有帮助!如有其他问题,欢迎继续提问。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/482518.html
![[java漫谈系列152]ftp常用命令](https://i0.hdslb.com/bfs/archive/9a6f1ae1e28f50037586dc82a1ef637d63986a4d.png)


