当前位置

8.4.2 使用lftp

主标签

8.1.2 使用lftp

lftp是一种强大的字符FTP工具它支持了六种模式, ftp, ftps, http, https, hftp, fish

and file(当然了 https 和 ftps 的支持必须在编译就和 openssl library 一起编译

好)。

lftp 内建了 shell-like 的命令格式, 允许在背景同时执行多个命令(&)。所有背

景执行的工作都是在同一个程序中(process), 能将前台执行的命令放到背景执行

(Ctrl-z), 或从背景拿回前台执行(wait 或 fg), 甚至还可以经由上个命令的传回

值来决定目前这个命令是否要执行(&& ||)。在结束 lftp 时, 如果还有程序执行中,

lftp 会将自己切换到 no hup 模式并放到背景执行。因此不必担心执行 lftp 当中

无法注销。

下面是一些常用参数的介绍。

!<SHELL-COMMAND>

可执行本地端 SHELL 中的命令, 如 !LS /USR/LOCAL/BIN/

由于 LFTP 并没有 LLS(显示本地端档案列表的指令), 故可用 !LS 来替代。



ALIAS 【<NAME>】 【<VALUE>】

定义别名

ALIAS LESS MORE

ALIAS RECONNECT "CLOSE; CD ."

直接输入 ALIAS 即可看到目前定义了那些别名。如果只输入 ALIAS NAME 的话,

则是取消 NAME 这个别名。



BOOKMARK 【SUBCMD】

设定书签, 可将目前站台及所在目录设成书签, 下次可直接进来, 不用再 CD

来 CD 去的



BOOKMARK ADD NAME 用来新增名称为 NAME 的书签

BOOKMARK DEL NAME 删除名称为 NAME 的书签

BOOKMARK LIST 显示目前有设定那些书签(另外直接打 BOOKMARK 和 BOOKMARK

LIST 的结果一样)

BOOKMARK EDIT 呼叫编辑器修改书签 (~/.LFTP/BOOKMARKS)



CAT 【OPTS】 FILES...

就是 CAT 啦



MORE <FILES>

功用和 CAT <FILES> | MORE 一样



ZCAT <FILES>

可直接看 .GZ 的文件



ZMORE <FILES>

和 MORE 一样, 但是可看 .GZ 的文件



CHMOD 【OPTS】 MODE FILE...

更改档案权限

CHMOD --RECURSIVE

递归的更改权限



CD <RDIR> 切换远程目录



CACHE 【SUBCMD】

管理 LFTP 的 CACHE



【RE】LS 【<ARGS>】

从 CACHE 中显示远程档案列表

RELS 则不会从 CACHE 中读取



【RE】CLS 【OPTS】 【PATH/】【PATTERN】

从 CACHE 中显示远程的档案列表, 应该算是 LS 的加强版, 有很多参数可用,

应该是可用来产生各种不同>的档案列表以供其它程序使用。

RECLS 则不会从 CACHE 中读取



DU 【OPTIONS】 <DIRS>

计算远程整个目录占用容量



GET 【OPTS】 <RFILE> 【-O <LFILE>】

抓取远程档案



GET RFILE -O LFILE

抓 RFILE 到本地改名为 LFILE

-C 为续传

-E 抓档完成后, 将远程的档案砍了

-A 为 ASCII MODE, 预设为 BINARY MODE

-O 设定 BASE DIRECTORY 为本地端放档案的目录



MGET 【OPTS】 <FILES>

下载远程档案(可用 WILDCARD EXPANSION 也就是 *)



PGET 【OPTS】 <RFILE> 【-O <LFILE>】

使用多个连结来下载档案, 预设为五个。

-N 3 为三个连结



JOBS 【-V】

显示目前有那些程序在背景执行

-V 显示详细的信息(-V 可多加几个来显示更详细的信息)



LCD <LDIR>

切换本地端的目录



MIRROR 【OPTS】 【REMOTE 【LOCAL】】

下载整个目录(楼上的 GET 只能用来抓档案)

-C 续传

-E 这个要小心一些, 比较远程和本地端的档案, 假如远程没有的, 就将本地端

的档案删除, 也就是将本地端和远程资料同步。

-R 上传整个目录

-N 只下载较新的档案

-R 不用递归到目录中

--PARALLEL=N 同时下载 N 个档案(预设一次只下载一个)



MODULE NAME 【ARGS】

加载模块



PUT 【OPTS】 <FILES> 【-O <RFILE>】

上传档案



MPUT 【OPTS】 <FILES>

上传档案(可用 WILDCARD EXPANSION 也就是 *)



MV <FILE1> <FILE2>

将远程的 FILE1 改名为 FILE2



MRM <FILES>

用 WILDCARD EXPANSION 方式来删除远程档案



OPEN 【OPTS】 <SITE>

开启某个站台

OPEN -U <USER>【,<PASS>】 -P <PORT> SITE



QUEUE 【OPTS】 【<CMD>】

将 CMD 放到队列中等待执行

-D INDEX 将编号为 INDEX 的 JOB 删除

-M INDEX NEW_INDEX 将编号为 INDEX 的 JOB 移至编号 NEW_INDEX, 插队专用。

-N INDEX 在编号 INDEX 之前新增一个 JOB



WAIT 【<JOBNO>】

将背景执行中的程序移至前台(也可用 FG)



KILL ALL|<JOB_NO>

删除全部的 JOBS 或 JOB_NO



REPEAT 【DELAY】 【COMMAND】

每隔 DELAY 秒, 重复执行 COMMAND, 预设是每隔一秒



RM 【-R】 【-F】 <FILES>

移除远程档案



MKDIR 【-P】 <DIRS>

建立远程目录



RMDIR 【-F】 <DIRS>

移除远程目录



SET 【OPT】 【<VAR>】 【<VAL>】

设定变量

直接键入 SET 可看目前定义了那些变量



SOURCE <FILE>

读取 FILE, 并执行 FILE 中的命令(应该是和 BASH 中的 SOURCE 命令是一样

的吧)



DEBUG 【<LEVEL>|OFF】 【-O <FILE>】

设定 DEBUG LEVEL 为 LEVEL

-O 将输出导向至 FILE



EXIT 【<CODE>|BG】

结束 LFTP

此时若还有 JOBS, 则会将 LFTP 放至背景执行, 继续未完成的工作



HISTORY -W FILE|-R FILE|-C|-L 【CNT】

和 BASH 中的 HISTORY 功能一样



【RE】NLIST 【<ARGS>】

只显示远程的档名



PWD 【-P】

显示目前远程所在目录

-P 连登入密码也显示