网站首页 > 精选文章 正文

简介
ftp 是 Internet 标准文件传输协议的用户界面, 它允许用户与远程网络站点之间传输文件
使用 ftp 客户端上传文件,需要一个 ftp 服务器,本文主要介绍 ftp 客户端上传相关的命令,默认已经安装好FTP服务器了
FTP服务器的搭建在 Linux下如何部署FTP服务器 中有详细的介绍,感兴趣的可以去看看
安装
使用下面的命令安装 FTP 客户端
yum install ftp
常用选项
进入 ftp 命令行之后,就可以执行上传、下载相关的命令,由于命令比较多,下面只列出一些常用的命令以及一些常用选项
命令 | 说明 |
put | 本地文件上传到FTP服务器 |
mput | 本地文件批量上传到FTP服务器 |
get | FTP服务器文件下载到本地 |
mget | FTP服务器批量下载到本地 |
delete | 删除FTP服务器上的文件 |
mdelete | 批量删除FTP服务器上的文件 |
ls | FTP服务器当前目录中的文件详细信息 |
lcd | 更换本地工作目录 |
cd | FTP服务器上更换目录 |
cdup | FTP服务器当前目录返回到上一层目录 |
pwd | 当前位于FTP服务器上哪个目录 |
nlist | 列出FTP服务器指定目录中的文件名列表 |
binary | 设置传输类型为二进制传输 |
open | 在指定的IP和端口上,与FTP建立一个连接 |
bye | 终止与FTP服务器的会话,退出FTP客户端 |
选项 | 说明 |
-i | 文件批量传输时,关闭交互提示 |
-n | 客户端连接上FTP服务器时,禁止自动登录 |
-v | 打印FTP服务器返回的所有消息 |
! | 本地机器上执行命令 |
上传单个文件
上传单个文件主要使用 put 命令,它的格式是 put local-file [remote-file] , 其中 local-file 表示本地文件,默认是本地当前目录,remote-file 是FTP服务器上的文件,如果不指定的话,上传到服务器之后,默认跟本地文件名同名
下面是把本地 /root/ftptest/haa.txt 上传到服务器的 /files 目录的步骤

- 步骤说明
1、输入帐号密码,登录FTP服务器
2、'!pwd' 命令表示本地机器当前目录
3、'!ls' 命令表示列出本地当前目录中的文件
4、'pwd' 命令是当前处于FTP服务器的哪个目录,这个目录是相对于用户锁定目录而言的,关于锁定目录请参考上一篇文章
'cd files' 命令是服务器当前目录( '/' ) 切换到 '/files' 目录
'ls' 是列出FTP服务器当前目录中的文件,从结果可以看出,服务器当前目录中没有任何文件
5、'binary' 以二进制模式上传,一般在上传之前设置下即可
6、'put haa.txt' 把本地当前目录中的 'haa.txt' 上传到服务器的 '/files' 目录中,上传成功之后,会有 'Transfer complete' 的提示
如果把本地其他目录的文件上传到服务器的话,需要指定上传到服务器的文件名,
比如:本地存在 /root/ftptest/test/test.txt 文件
可以使用 'put ./test/test.txt test.txt' 命令将它上传到服务器的 '/files' 目录
7、上传完成之后,执行 'nlist *' 命令查看下服务器当前目录中的文件列表,此处是用来确认是否上传成功,从结果可以看出,服务器当前目录的文件列表中有 'haa.txt' 文件,所以此次上传成功
8、操作完成之后,执行 'bye' 命令断开连接并退出FTP客户端
批量上传
批量上传主要使用 mput 命令,后面可以接文件名列表,也可以接含有通配符的文件名,命令能正确获取通配符指代的文件,文件名之间以空格隔开
下面是将 /root/ftptest 目录下的 haa.txt、hab.txt、ta.log、tb.log 文件上传到服务器的 /files 目录的步骤

上图省略了FTP登录输入帐号密码的步骤,其中第一条执行的命令是 ftp -i -v 192.168.70.20 48888
选项 -i 表示关闭交互提示,在批量上传的时候很有用, mput 批量上传的时候,会逐个文件调用 put上传命令进行上传, 如果没有关闭交互提示,每次上传文件的时候都需要人为输入 y 字符确认,当关闭了交互提示后,就能不间断的上传,直到所有的文件上传成功
- 步骤说明
1、本地当前所处目录
2、服务器当前所处目录,然后进入 '/files' 目录
3、以二进制模式上传
4、批量上传文件,'mput' 是批量上传的命令,后面可以接 文件名或者通配符组成的文件名,它们之间用空格隔开,这里的意思是批量上传 'haa.txt、hab.txt、ta.log、tb.log '
执行 'mput haa.txt hab.txt *.log' 命令之后,会逐个文件的上传到服务器
每个文件都会有上传结果信息返回,从图中的结果可以看出,总共上传了 'haa.txt hab.txt ta.log tb.log' 四个文件,全部都上传成功
5、上传操作之后,通过 'nlist *' 命令确认上传结果是成功的
6、退出客户端
一键上传
每次上传文件都需要输入一些重复的 FTP 命令其实是比较繁琐的操作,可以将这些重复又繁琐的命令合并到一个脚本中,变成一个一键上传的 shell 脚本,具体的内容如下:
#!/bin/sh
#FTP用户名
FTP_USER=mytest
#FTP密码
FTP_PAWD=12345678
#FTP服务器IP
FTP_IP=192.168.70.20
#FTP服务器侦听端口(命令端口)
FTP_PORT=48888
#文件上传到FTP服务器的哪个目录
FTP_PATH=files
#本地对当前目录
LOCAL_PATH=`pwd`
#传入参数校验
if [ $# != 1 ]; then
echo "param count error..please input file"
exit 1
fi
echo "begin ftp $1 ..."
#关闭交互提示、禁止自动登录
ftp -v -i -n<<!
#与指定IP和端口的FTP服务器建立连接
open ${FTP_IP} ${FTP_PORT}
#验证FTP用户和密码
user ${FTP_USER} ${FTP_PAWD}
#以二进制模式传输文件
binary
#服务器目录切换到指定目录
cd ${FTP_PATH}
#切换本地目录
lcd ${LOCAL_PATH}
#上传文件 $1 表示执行脚本时传入的文件名
put $1
#断开连接,退出FTP客户端
bye
!
脚本中有详细的注释,就不再做额外的说明了,此脚本只提供了一个基础的一键上传的模版,而且一次只能上传一个文件,大家可以根据自身的需求去扩充或者调整
- 上一篇: 怎么查看我的ftp,怎么查看我的ftp账号和密码?
- 下一篇: FTP 软件使用教程
猜你喜欢
- 2024-12-10 FTP 软件使用教程
- 2024-12-10 怎么查看我的ftp,怎么查看我的ftp账号和密码?
- 2024-12-10 linux常用网络操作方法:ftp命令使用方法
- 2024-12-10 在我的电脑上怎么打开ftp
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)