通常而言,FTP传输过程中,客户端在完成账户认证后,需要指定具体的文件路径方能下载或删除服务器端的文件。但是在使用命令行指令去操作ftp数据时,如果每次都要输入完整的路径就太麻烦了,而且如果想要同时下载多个文件还需逐个执行下载指令,那有什么方法可以通过正则表达式去完成模糊匹配和批量下载呢?本文就来介绍一下FTP数据传输的常用操作及正则匹配的实现方法。
常用的ftp客户端
在介绍ftp数据传输之前,简单介绍下常用的几款ftp client:ftp
lftp(支持ftp, http, https, sftp, fish, torrent, fxp, ...)
sftp(Secure File Transfer Protocol)
FileZilla(图形化软件,支持ftp, ftps, sftp)
ftp是最基本的ftp客户端,高效但不安全,数据传输过程中使用明文,容易被截获和篡改。lftp是非常强大的一款文件传输工具,支持多种文件传输协议,功能强大,支持递归镜像整个目录及断点续传等,也是本文采用的ftp客户端。sftp是ssh的一部分,支持加密传输,与ftp语法基本一致,非常安全但是传输效率较低。最后的FileZilla是一款图形化软件,在windows操作系统中使用较多。
ftp常用操作
本文主要介绍以下四个常用的ftp操作账户认证
文件上传
文件下载(用到正则模糊匹配)
文件删除
lftp指令的语法如下:
lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
lftp -f script_file
lftp -c commands
lftp --version
lftp --help
lftp的帮助信息中可以看到所有可以执行的指令。
$ lftp -u "username,password" ftp://host.ip
lftp username@host:~> help
! (commands)
alias [ []] attach [PID]
bookmark [SUBCMD] cache [SUBCMD]
cat [-b] cd
chmod [OPTS] mode file... close [-a]
[re]cls [opts] [path/][pattern] debug [OPTS] [|off]
du [options] edit [OPTS]
exit [|bg] get [OPTS] [-o ]
glob [OPTS] help []
history -w file|-r file|-c|-l [cnt] jobs [-v] []
kill all| lcd
lftp [OPTS] ln [-s]
ls [] mget [OPTS]
mirror [OPTS] [remote [local]] mkdir [OPTS]
module name [args] more
mput [OPTS] mrm
mv mmv [OPTS]
[re]nlist [] open [OPTS]
pget [OPTS] [-o ] put [OPTS] [-o ]
pwd [-p] queue [OPTS] []
quote repeat [OPTS] [delay] [command]
rm [-r] [-f] rmdir [-f]
scache [] set [OPT] [ []]
site source
torrent [OPTS] ... user []
wait