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 连登入密码也显示
最新评论