- 浏览: 283490 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (234)
- php (70)
- linux (46)
- apache (9)
- mysql (13)
- oauth (1)
- IT新闻 (18)
- 代码收藏 (20)
- python (2)
- webservice (6)
- 评论 (7)
- asd (0)
- 开源软件 (6)
- 前端 (9)
- 7z (1)
- js (17)
- windows (4)
- cmd (2)
- 开源 (3)
- vim (6)
- windows 软件安装错误 (2)
- 分享 (3)
- search (1)
- node.js (1)
- xmind (1)
- 变成语言 (1)
- drupal (0)
- jquery (2)
- css (7)
- ietester (1)
- 编辑器 (1)
- java (2)
- html5 (1)
- 生活 (1)
- Sublime Text 2 (1)
- 制图 (0)
- sublime (1)
最新评论
-
muxueqz:
我自己写了个开源的:http://muxueqz.top/sk ...
Delicious被Yahoo卖了 -
yangyongnihao:
...
REST与SOAP样式Web 服务的区别 -
wangshaofei:
zhou7707 写道 大神啊,太及时了,我今天服务器上不了 ...
Debian 6 下搭建nginx 1.3 -
zhou7707:
大神啊,太及时了,我今天服务器上不了外网,为搞包依赖折腾一 ...
Debian 6 下搭建nginx 1.3 -
wangshaofei:
bbs_ld 写道一楼说的对啊。如何解决呢?? 高手大人
利用php创建日期选择框
蛋疼地翻译了一遍man lftp……
====================
lftp是个功能强大的文件传输工具,操作上很像shell,支持命令补全、历史记录、多任务后台执行,还有书签、排队、镜像、断点续传、多进程下载等功能。
lftp支持ftp, ftps, http, https, hftp, fish, sftp, file等多种文件访问方式(https和ftps方式只有lftp编译集成了OpenSSL库时才可用)。可以在open url命令中指定访问方式,比如open http://www.us.kernel.org/pub/linux/. hftp是ftp-over-http-proxy协议的缩写,即通过http代理的ftp访问,设置ftp:proxy为http://proxy[:port]后会自动应用。fish是通过ssh连接到unix账户的协议。sftp是内置了ssh2的访问协议。
lftp中的每项操作都是可靠的,非致命错误都会被忽略同时操作会被重新执行。比如下载中断,它会重新从中断点开始继续下载;即便ftp服务器不支持断点续传,lftp会从头开始重新下载文件知道文件传输完成。
lftp拥有类似shell的语法,支持并行在后台(&)运行命令,支持用()分组命令并将它们在后台执行。所有后台任务在同一个进程中执行。使用^Z(Ctrl+Z)将前台任务切换到后台执行,wait或fg(wait的别名)命令将后台任务切换到前台,使用jobs命令罗列正在执行的任务。一些命令(如cat, ls等)允许将输出重定向至文件或通过管道传送给别的命令。命令能根据前一命令的结束状态有选择性地执行(&&, ||)。
如果你在仍有任务未完成的情况下退出lftp, lftp将会把自己切换到nohup模式在后台继续运行,直至任务完成。
lftp内置了镜像功能(mirror命令)允许下载整个目录,反向镜像功能(mirror -R命令)允许上传整个目录到服务器上。镜像功能同样可用于同步两个远程服务器上的文件夹。
at命令在当前环境下指定在特定的时刻执行某些任务;queue命令将指定的命令在当前服务器上按顺序执行;还有其他很多命令。
启动时,lftp先后执行配置文件/etc/lftp.conf, ~/.lftprc, ~/.lftp/rc 。你可以在这些配置文件中增加alias或set命令。希望看到完整协议调试内容的朋友可以通过debug命令来启动调试模式,如使用debug 3将看到所有的问候消息和错误消息。
lftp拥有大量的配置项,可以通过set -a命令来查看所有的配置项和值,set -d命令查看配置项的默认值。配置项可以使用缩写并且省略前导符,只要名称唯一。
如果编译包括了OpenSSL (configure –with-openssl),那么lftp将内置有OpenSSL项目开发的软件功能。
lftp命令
! shell command
运行shell或shell命令;如!ls将列出本地的当前文件夹下的内容。
alias [name [value]]
定义或取消name别名。设置value,别名name将被定义;忽略value,别名name将被取消。没有参数,将罗列当前的所有别名。比如
12 alias dir ls -lF alias less zmore
anon
设置用户为匿名用户,默认情况。
at time [ -- command ]
等到指定时间执行指定的命令。参见linux下的at命令。
bookmark [subcommand]
操作书签,子命令如下:
add <name> [<loc>] 将当前位置或指定位置以指定名称添加到书签
del <name> 删除指定名称的书签
edit 启动编辑器来编辑书签文件
import <type> 导入外部书签
list 罗列所有书签(默认)
cache [subcommand]
操作本地内存缓存,子命令如下:
stat 打印缓存状态(默认)
on|off 开启或关闭缓存
flush 清空缓存
size lim 设置缓存大小限制,-1表示不限制
expire Nx 设置缓存过期时间为N秒(x=s), 分钟(x=m), 小时(x=h), 天(x=d)
cat files
罗列远程目录下的内容到标准输出。
cd rdir
切换当前的远程目录。前一远程目录被存为-, 可以使用cd -切换到前一目录。每个站点前一目录会被保存到磁盘,所以即使重启lftp后同样可以执行open site; cd -命令。
chmod mode files
改变远程文件的权限控制码,mode必须为八进制数字。
close [-a]
关闭空闲链接。默认只关闭当前服务器连接,使用-a关闭所有空闲链接。
cls [OPTS] files…
获取指定的文件或目录信息,以OPTS参数指定的格式显示结果。与ls的差别是,ls请求由服务器来格式化信息,cls由自身来格式化信息。通过help cls查看OPTS参数的使用。
command cmd args…
执行执行的命令,忽略别名。
debug [-o file] level|off
切换调试默认是level级别或关闭调试。使用-o重定向调试信息输出到文件。
echo [-n] string
输出string字符串,使用-n不输出换行符。
eval [-f format ] args…
不指定-f,将把args作为命令执行;使用-f,args将被转换为新的命令。format可以包括普通字符和占位符$0 … $9, $@(与参数args对应)
exit [bg] [top] [kill]
退出lftp或将lftp切换到后台执行如果仍有活动任务。如果当前没有活动任务,code会被作为lftp的结束状态传给操作系统。如果code被忽略,最后一条命令的退出代码将被作为code。
exit bg强制lftp切换到后台执行如果cmd:move-background是false。exit top终止最上层shell(lftp的内部命令)的执行。exit kill在退出前结束所有任务。选项可以别结合使用,比如at 08:00 — exit top kill & 将在8:00结束所有任务并退出lftp。
fg
wait的别名。
find [directory]
罗列指定目录(默认为当前目录)及所有子目录下的所有文件。作为服务器没有ls -R功能的补充。输出可进行重定向。
ftpcopy
过时的命令,使用一下命令取代:
get ftp://… -o ftp://…
get -O ftp://… file1 file2…
put ftp://…
mput ftp://…/*
mget -O ftp://… ftp://…/*
get [-E] [-a] [-c] [-O base] rfile [-o lfile] …
获取远程文件rfile并保存为本地文件lfile。如果没有-o参数,文件将被保存为与rfile同名的本地文件。可以通过指定多个rfile和-o lfile来获取多个文件。如需使用通配符,请用mget代替get命令。举例:
get README
get README -o debian.README
get README README.mirrors
get README -o debian.README README.mirrors -o debian.mirrors
get README -o ftp://some.host.org/debian.README
get README -o ftp://some.host.org/debian-dir/ (end slash is important)
get1 [OPTS] rfile
传输单个文件,选项:
-o <lfile> 目标文件名(默认为同rfile中的文件名)
-c 继续,重新获取
-E 在传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
–source-region=<from-to> 传输源文件的指定区块
–target-position=<pos> 指定目标文件的数据写入位置
glob [-d] [-a] [-f] command patterns
取出当前目录下符合patterns的文件或文件夹名,结果串接后传给command命令。比如glob echo *。选项:
-f 文件(默认)
-d 文件夹
-a 所有类型
help [cmd]
打印cmd命令的帮助信息;未指定cmd时将打印所有可用命令。
jobs [-v]
罗列正在运行的任务。-v显示详细信息,可指定多个-v。
kill all|job_no
删除job_no指定的任务或所有任务。job_no可通过jobs命令查看。
lcd ldir
切换当前的本地目录为ldir。前一本地目录被存为-, 可以使用lcd -切换到前一目录。
lpwd
打印当前本地的工作目录。
ls params
罗列远程文件。可以将此命令的输出重定向至文件或通过管道传送给其他命令。默认,ls的输出会被缓存,使用rels或cache flush来查看新的罗列结果。
mget [-c] [-d] [-a] [-E] [-O base] files
获取满足通配符条件的文件,选项:
-c 继续,重新获取
-d 创建与文件路径中目录名相同的目录,并保存文件到对应目录中
-E 在传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定文件被保存的目录或URL
mirror [OPTS] [source [target]]
将源文件夹镜像到目标文件夹。如果目标文件夹以/结尾,原文件夹名称会被附加到目标文件夹名称之后。源和目标都可以是指向文件夹的URL。
-c, –continue 续传上次的任务
-e, –delete 删除远程目录上不存在的文件
–delete-first 在传输新文件之前删除旧的文件
–depth-first 进入下一层目录优先于文件传输
-s, –allow-suid 根据远程站点设置suid/sgid比特位
–allow-chown 尝试将自己设置为文件所有者和所有组
–ascii 使用ascii方式传输(隐含了–ignore-size)
–ignore-time 决定是否下载时忽略时间因素
–ignore-size 决定是否下载时忽略文件大小因素
–only-missing 只下载缺少的文件
–only-existing 只下载已经存在于目标文件夹中的文件
-n, –only-newer 只下载新文件(-c参数无法工作)
–no-empty-dirs 不创建空文件夹(隐含了–depth-first)
-r, –no-recursion 不进入子文件夹
–no-symlinks 不创建符号链接
-p, –no-perms 不设置文件权限
–no-umask 不使用文件预设权限
-R, –reverse 反向镜像(上传文件)
-L, –dereference 将符号链接作为文件下载
-N, –newer-than=SPEC 只下载比指定时间晚的文件
–on-change=CMD 只要有文件或文件夹存在差异就执行命令CMD
–older-than=SPEC 只下载比指定时间早的文件
–size-range=RANGE 只下载大小在指定区间上的文件
-P, –parallel[=N] 并行下载N个文件
–use-pget[-n=N] 使用pget传输每个文件
–loop 循环知道找不到差异
-i RX, –include RX 包括相匹配的文件
-x RX, –exclude RX 不包括相匹配的文件
-I GP, –include-glob GP 包括相匹配的文件
-X GP, –exclude-glob GP 不包括相匹配的文件
-v, –verbose[=level] 冗长操作
–log=FILE 将执行的lftp命令写入文件FILE
–script=FILE 将lftp命令写入文件FILE,但不执行
–just-print, –dry-run 与–script=-相同
–use-cache 使用缓存目录列表
–Remove-source-files 传输完成后删除源文件
-a 与–allow-chown –allow-suid –no-umask相同
使用-R时,第一个目录为本地目录,第二个目录为远程目录。如果第二个目录被忽略,将采用第一个目录的目录名。如果两个目录都被忽略,将采用当前的本地和远程目录。如果目标目录以/结尾,那么源目录名将被加到目标目录上。
RX是扩展的正则表达式,具体语法可参考egrep命令。
GP是通配符规则,比如*.zip。
包含和不包含选项可以被多次使用。符合以下规则之一的文件将被镜像传输:(1)符合包含规则而不符合之后的不包含规则;(2)不符合任何规则,但第一条为不包含规则。目录匹配时包括结尾的/。
注意:符号链接(软链接)不会被传输到远程服务器上,因为无法被FTP协议传输。要上传链接指向的文件,请使用mirror -RL命令(将符号链接视为普通文件)。
对于–newer-than选项,你可以使用文件或时间作为参数。时间参数的格式同at命令,如now-7days、week age等。如果指定为文件,将采用文件的修改时间。
冗长输出级别可以通过–verbose=level选项或者使用多个-v选项进行设定,比如-vvv。冗长输出级别为:
0 – 无输出(默认)
1 – 打印动作
2 – +打印不删除的文件名(当没有采用-e选项时)
3 – +打印
–only-newer关闭文件大小比较,只上传/下载新的文件,即使文件大小存在差异,默认情况下旧的文件会被新的文件代替。
当用URL代替目录时,可以对两台服务器上的目录进行镜像操作。只要可以,会自动使用FXP在FTP服务器之间进行文件传输。
一些ftp服务器默认隐藏了.开头的文件(如.htaccess),只会在LIST命令使用-a选项时显示。在这种情况下,使用设置set ftp:list-options -a。
mkdir [-p] dir(s)
创建远程目录。如果使用-p参数,将创建路径的所有相关目录。
module module [ args ]
使用dlopen函数加载已知模块。如果模块名中不包含/,将在module:path指定的位置搜索模块。参数会被传给module_init函数,具体技术细节可查看README.modules。
more files
与cat files | more命令相同。
mput [-c] [-d] [-a] [-E] [-O base] files
上传符合通配符规则的文件。默认使用本地文件名作为远程的文件名,可以使用-d选项修改。
-c 继续上传
-d 创建与文件路径中目录名相同的目录,并将文件放到对应目录,而不是当前目录
-E 传输成功后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定目标目录或URL
mrm file(s)
与glob rm命令相同,删除符合通配符规则的文件。
mv file1 file2
将文件file1重命名为file2。
nlist [args]
列出远程文件名。
open [-e cmd] [-u user[,pass]] [-p port] host|url
打开一台ftp服务器。
pget [OPTS] rfile [-o lfile]
使用多个连接下载同一文件,可提高下载速度,但会加重网络和服务器的负载,影响其他用户。尽量只在紧急时使用。选项:
-c 继续传输;需要文件lfile.lftp-pget-status
-n maxconn 设置最大连接数(默认使用pget:default-n设置)
put [-E] [-a] [-c] [-O base] lfile [-o rfile]
将文件lfile上传到远程并存为rfile。如果忽略-o参数,lfile中的文件名将被作为远程的文件名。如需扩展通配符,请使用mput。
-o <rfile> 指定远程文件名(默认为lfile中的文件名)
-c 继续上传,需要远程文件的覆盖权限
-E 传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定目标目录或URL
pwd [-p]
打印当前的远程URL。使用-p参数在URL中显示密码。
queue [-n num ] cmd
将指定命令放入队列来依次执行。每个站点维护一个命令队列。-n参数将指定命令放入队列中指定位置。不要将cd或lcd命令加入队列,这可能使lftp执行出现混乱。应在queue命令之前使用cd/lcd切换目录。允许通过queue wait <jobno>命令将正在执行的任务加入队列,任务将继续执行即使它不是队列中的第一个。
queue stop将停止队列,它将不再执行任何新的命令,但正在执行的命令会继续执行。你可以使用queue stop命令来创建一个空的暂停队列。queue start命令可以重新启动命令执行。当你退出lftp时,它将自动启动所有暂停的队列。
没有指定参数的queue命令将创建一个暂停队列或者打印队列状态。
queue –delete|-d [index or wildcard expression]
删除队列中的一个或多个条目。如果没有指定参数,会删除队列中的最后一个条目。
queue –move|-m <index or wildcard expression> [index]
将指定条目移动到队列的指定位置;如没有指定位置,将会移动到末尾。
-q 不输出任何提示
-v 输出详细的提示
-Q 以特定格式输出,可以被重新加入队列
0102030405060708091011 > get file & [1] get file > queue wait 1 > queue get another_file > cd a_directory > queue get yet_another_file queue -d 3 删除队列中的第3个条目 queue -m 6 4 移动队列中的第6个条目到第4个条目之前 queue -m "get*zip" 1 移动所有符合get*zip的命令道队列最开始(条目顺序不变) queue -d "get*zip" 删除所有所有符合get*zip的命令
quote cmd
FTP协议下,将直接向服务器发送命令。使用时需要注意:它将导致远程处于未知状态,导致重新连接,即使重新连接状态仍然无法被重置。
HTTP协议下,语法为quote <command> [<args>],command可以为set-cookie或post。
1234 open http://www.site.net quote set-cookie "variable=value; othervar=othervalue" set http:post-content-type application/x-www-form-urlencoded quote post /cgi-bin/script.cgi "var=value&othervar=othervalue" > local_file
FISH协议下,将直接向服务器发送命令。使用此方法可以在服务器上执行任何命令。但执行的命令不能需要输入和在新行的开头打印###,否则将导致协议失去同步。
12 open fish://server quote find -name \*.zip
reget rfile [-o lfile]
与get -c命令相同。
rels [args]
与ls命令相同,但忽略缓存。
renlist [args]
与nlist命令相同,但忽略缓存。
repeat [ -c <count>] [[-d] delay] [command]
重复执行命令。在命令执行之间会加入延时,默认为1秒。-c选项用来限制重复次数。–while-ok将使命令返回非零值时退出循环;–until-ok将使命令返回零值时退出循环。比如:
12 repeat at tomorrow -- mirror repeat 1d mirror
reput lfile [-o rfile]
与put -c命令相同。
rm [-r] [-f] files
删除远程文件。如需要使用通配符规则,请使用mrm代替。-r指定递归删除目录,-f 取消错误消息提示。
rmdir dir(s)
删除远程目录。
scache [session]
罗列缓存的会话,或切换到指定会话。
set [var [val]]
将变量设定为指定值。如果值被忽略了,则取消这个变量。如未指定变量名,将显示被改变的设置变量。可以使用以下选项修改显示:
-a 罗列所有的设置,包括默认值
-d 只罗列默认值
site site_cmd
执行站点命令site_cmd,可以重定向输出。
sleep interval
休眠指定时间间隔然后退出。时间间隔默认以秒为单位,但可以后缀m, h, d来对应表示分钟、小时、天。
slot [name]
选择特定的slot,或者罗列所有已分配的slot。slot是与服务器的一个连接,有点像虚拟控制台。你可以创建连接到不同服务器的多个slot,并可在不同的slot之间进行切换。你同样可以使用slot:name作为伪URL表示那个slot位置。
默认情况下,可以使用Meta-0 至 Meta-9(往往使用Alt键代替Meta键)快捷键来快速切换0-9的slot。
source file
source -e command
执行file文件中的命令或是有特定command返回的命令。
12 source ~/.lftp/rc source -e echo help
suspend
暂停lftp进程。注意:传输任务同样或被暂停直到你使用shell的fg或bg命令继续执行这个进行。
user user [pass]
user URL [pass]
使用特定的信息登陆远程ftp。如果你对URL指定了用户名,输入的密码将被缓存起来供以后使用。
version
打印lftp版本信息。
wait [jobno]
wait all
等待特定任务终止。如果忽略jobno,将等待最后一个后台任务终止。wait all等待所有任务终止。
zcat files
与cat相同,但通过zcat过来每个文件。
zmore files
与more相同,但通过zcat过来每个文件。
lftp设置
lftp启动时执行~/.lftprc 和~/.lftp/rc。你可以在这两个文件中加入alias或set命令。如果你想看到完全的协议调试过程,可以使用debug来打开调试。
系统级的启动文件为/etc/lftp.conf。
lftp拥有众多设置项,可以通过set -a命令查看所有设置项及它们的值。
lftp命令选项
-d 切换到调试模式
-e commands 执行指定的命令,并且不退出
-p port 使用执行端口进行连接
-u user[,pass] 使用执行的用户名和密码进行连接
-f script_file 执行文件中的命令并且退出
-c commands 执行指定的命令并且退出
环境变量
以下环境变量将被lftp使用:
HOME 作为~的扩展
SHELL 在!命令时决定使用哪个shell来运行
PAGER 作为页面名称,在more和zmore命令中使用
http_proxy, https_proxy 作为初始时http:proxy, hftp:proxy, https:proxy的值
ftp_proxy 作为初始时ftp:proxy或hftp:proxy的值(由环境变量中的URL协议指定)
no_proxy 作为初始时的net:no-proxy值
LFTP_MODULE_PATH 作为初始时的module:path值
LFTP_HOME 用于定位用户配置文件的目录,如未设置将使用~/.lftp
相关文件
/etc/lftp.conf 系统级启动文件。实际位置由–sysconfdir配置项决定。
~/.lftp/rc, ~/.lftprc 这些文件在/etc/lftp.conf之后被执行。
~/.lftp/log 用于记录lftp运行于后台nohup模式时的日志。
~/.lftp/bookmarks 用户保存lftp中的书签。
~/.lftp/cwd_history 用于保存每个站点的当前工作目录。
~/.netrc 用于保存站点的用户名和密码。
====================
lftp是个功能强大的文件传输工具,操作上很像shell,支持命令补全、历史记录、多任务后台执行,还有书签、排队、镜像、断点续传、多进程下载等功能。
lftp支持ftp, ftps, http, https, hftp, fish, sftp, file等多种文件访问方式(https和ftps方式只有lftp编译集成了OpenSSL库时才可用)。可以在open url命令中指定访问方式,比如open http://www.us.kernel.org/pub/linux/. hftp是ftp-over-http-proxy协议的缩写,即通过http代理的ftp访问,设置ftp:proxy为http://proxy[:port]后会自动应用。fish是通过ssh连接到unix账户的协议。sftp是内置了ssh2的访问协议。
lftp中的每项操作都是可靠的,非致命错误都会被忽略同时操作会被重新执行。比如下载中断,它会重新从中断点开始继续下载;即便ftp服务器不支持断点续传,lftp会从头开始重新下载文件知道文件传输完成。
lftp拥有类似shell的语法,支持并行在后台(&)运行命令,支持用()分组命令并将它们在后台执行。所有后台任务在同一个进程中执行。使用^Z(Ctrl+Z)将前台任务切换到后台执行,wait或fg(wait的别名)命令将后台任务切换到前台,使用jobs命令罗列正在执行的任务。一些命令(如cat, ls等)允许将输出重定向至文件或通过管道传送给别的命令。命令能根据前一命令的结束状态有选择性地执行(&&, ||)。
如果你在仍有任务未完成的情况下退出lftp, lftp将会把自己切换到nohup模式在后台继续运行,直至任务完成。
lftp内置了镜像功能(mirror命令)允许下载整个目录,反向镜像功能(mirror -R命令)允许上传整个目录到服务器上。镜像功能同样可用于同步两个远程服务器上的文件夹。
at命令在当前环境下指定在特定的时刻执行某些任务;queue命令将指定的命令在当前服务器上按顺序执行;还有其他很多命令。
启动时,lftp先后执行配置文件/etc/lftp.conf, ~/.lftprc, ~/.lftp/rc 。你可以在这些配置文件中增加alias或set命令。希望看到完整协议调试内容的朋友可以通过debug命令来启动调试模式,如使用debug 3将看到所有的问候消息和错误消息。
lftp拥有大量的配置项,可以通过set -a命令来查看所有的配置项和值,set -d命令查看配置项的默认值。配置项可以使用缩写并且省略前导符,只要名称唯一。
如果编译包括了OpenSSL (configure –with-openssl),那么lftp将内置有OpenSSL项目开发的软件功能。
lftp命令
! shell command
运行shell或shell命令;如!ls将列出本地的当前文件夹下的内容。
alias [name [value]]
定义或取消name别名。设置value,别名name将被定义;忽略value,别名name将被取消。没有参数,将罗列当前的所有别名。比如
12 alias dir ls -lF alias less zmore
anon
设置用户为匿名用户,默认情况。
at time [ -- command ]
等到指定时间执行指定的命令。参见linux下的at命令。
bookmark [subcommand]
操作书签,子命令如下:
add <name> [<loc>] 将当前位置或指定位置以指定名称添加到书签
del <name> 删除指定名称的书签
edit 启动编辑器来编辑书签文件
import <type> 导入外部书签
list 罗列所有书签(默认)
cache [subcommand]
操作本地内存缓存,子命令如下:
stat 打印缓存状态(默认)
on|off 开启或关闭缓存
flush 清空缓存
size lim 设置缓存大小限制,-1表示不限制
expire Nx 设置缓存过期时间为N秒(x=s), 分钟(x=m), 小时(x=h), 天(x=d)
cat files
罗列远程目录下的内容到标准输出。
cd rdir
切换当前的远程目录。前一远程目录被存为-, 可以使用cd -切换到前一目录。每个站点前一目录会被保存到磁盘,所以即使重启lftp后同样可以执行open site; cd -命令。
chmod mode files
改变远程文件的权限控制码,mode必须为八进制数字。
close [-a]
关闭空闲链接。默认只关闭当前服务器连接,使用-a关闭所有空闲链接。
cls [OPTS] files…
获取指定的文件或目录信息,以OPTS参数指定的格式显示结果。与ls的差别是,ls请求由服务器来格式化信息,cls由自身来格式化信息。通过help cls查看OPTS参数的使用。
command cmd args…
执行执行的命令,忽略别名。
debug [-o file] level|off
切换调试默认是level级别或关闭调试。使用-o重定向调试信息输出到文件。
echo [-n] string
输出string字符串,使用-n不输出换行符。
eval [-f format ] args…
不指定-f,将把args作为命令执行;使用-f,args将被转换为新的命令。format可以包括普通字符和占位符$0 … $9, $@(与参数args对应)
exit [bg] [top] [kill]
退出lftp或将lftp切换到后台执行如果仍有活动任务。如果当前没有活动任务,code会被作为lftp的结束状态传给操作系统。如果code被忽略,最后一条命令的退出代码将被作为code。
exit bg强制lftp切换到后台执行如果cmd:move-background是false。exit top终止最上层shell(lftp的内部命令)的执行。exit kill在退出前结束所有任务。选项可以别结合使用,比如at 08:00 — exit top kill & 将在8:00结束所有任务并退出lftp。
fg
wait的别名。
find [directory]
罗列指定目录(默认为当前目录)及所有子目录下的所有文件。作为服务器没有ls -R功能的补充。输出可进行重定向。
ftpcopy
过时的命令,使用一下命令取代:
get ftp://… -o ftp://…
get -O ftp://… file1 file2…
put ftp://…
mput ftp://…/*
mget -O ftp://… ftp://…/*
get [-E] [-a] [-c] [-O base] rfile [-o lfile] …
获取远程文件rfile并保存为本地文件lfile。如果没有-o参数,文件将被保存为与rfile同名的本地文件。可以通过指定多个rfile和-o lfile来获取多个文件。如需使用通配符,请用mget代替get命令。举例:
get README
get README -o debian.README
get README README.mirrors
get README -o debian.README README.mirrors -o debian.mirrors
get README -o ftp://some.host.org/debian.README
get README -o ftp://some.host.org/debian-dir/ (end slash is important)
get1 [OPTS] rfile
传输单个文件,选项:
-o <lfile> 目标文件名(默认为同rfile中的文件名)
-c 继续,重新获取
-E 在传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
–source-region=<from-to> 传输源文件的指定区块
–target-position=<pos> 指定目标文件的数据写入位置
glob [-d] [-a] [-f] command patterns
取出当前目录下符合patterns的文件或文件夹名,结果串接后传给command命令。比如glob echo *。选项:
-f 文件(默认)
-d 文件夹
-a 所有类型
help [cmd]
打印cmd命令的帮助信息;未指定cmd时将打印所有可用命令。
jobs [-v]
罗列正在运行的任务。-v显示详细信息,可指定多个-v。
kill all|job_no
删除job_no指定的任务或所有任务。job_no可通过jobs命令查看。
lcd ldir
切换当前的本地目录为ldir。前一本地目录被存为-, 可以使用lcd -切换到前一目录。
lpwd
打印当前本地的工作目录。
ls params
罗列远程文件。可以将此命令的输出重定向至文件或通过管道传送给其他命令。默认,ls的输出会被缓存,使用rels或cache flush来查看新的罗列结果。
mget [-c] [-d] [-a] [-E] [-O base] files
获取满足通配符条件的文件,选项:
-c 继续,重新获取
-d 创建与文件路径中目录名相同的目录,并保存文件到对应目录中
-E 在传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定文件被保存的目录或URL
mirror [OPTS] [source [target]]
将源文件夹镜像到目标文件夹。如果目标文件夹以/结尾,原文件夹名称会被附加到目标文件夹名称之后。源和目标都可以是指向文件夹的URL。
-c, –continue 续传上次的任务
-e, –delete 删除远程目录上不存在的文件
–delete-first 在传输新文件之前删除旧的文件
–depth-first 进入下一层目录优先于文件传输
-s, –allow-suid 根据远程站点设置suid/sgid比特位
–allow-chown 尝试将自己设置为文件所有者和所有组
–ascii 使用ascii方式传输(隐含了–ignore-size)
–ignore-time 决定是否下载时忽略时间因素
–ignore-size 决定是否下载时忽略文件大小因素
–only-missing 只下载缺少的文件
–only-existing 只下载已经存在于目标文件夹中的文件
-n, –only-newer 只下载新文件(-c参数无法工作)
–no-empty-dirs 不创建空文件夹(隐含了–depth-first)
-r, –no-recursion 不进入子文件夹
–no-symlinks 不创建符号链接
-p, –no-perms 不设置文件权限
–no-umask 不使用文件预设权限
-R, –reverse 反向镜像(上传文件)
-L, –dereference 将符号链接作为文件下载
-N, –newer-than=SPEC 只下载比指定时间晚的文件
–on-change=CMD 只要有文件或文件夹存在差异就执行命令CMD
–older-than=SPEC 只下载比指定时间早的文件
–size-range=RANGE 只下载大小在指定区间上的文件
-P, –parallel[=N] 并行下载N个文件
–use-pget[-n=N] 使用pget传输每个文件
–loop 循环知道找不到差异
-i RX, –include RX 包括相匹配的文件
-x RX, –exclude RX 不包括相匹配的文件
-I GP, –include-glob GP 包括相匹配的文件
-X GP, –exclude-glob GP 不包括相匹配的文件
-v, –verbose[=level] 冗长操作
–log=FILE 将执行的lftp命令写入文件FILE
–script=FILE 将lftp命令写入文件FILE,但不执行
–just-print, –dry-run 与–script=-相同
–use-cache 使用缓存目录列表
–Remove-source-files 传输完成后删除源文件
-a 与–allow-chown –allow-suid –no-umask相同
使用-R时,第一个目录为本地目录,第二个目录为远程目录。如果第二个目录被忽略,将采用第一个目录的目录名。如果两个目录都被忽略,将采用当前的本地和远程目录。如果目标目录以/结尾,那么源目录名将被加到目标目录上。
RX是扩展的正则表达式,具体语法可参考egrep命令。
GP是通配符规则,比如*.zip。
包含和不包含选项可以被多次使用。符合以下规则之一的文件将被镜像传输:(1)符合包含规则而不符合之后的不包含规则;(2)不符合任何规则,但第一条为不包含规则。目录匹配时包括结尾的/。
注意:符号链接(软链接)不会被传输到远程服务器上,因为无法被FTP协议传输。要上传链接指向的文件,请使用mirror -RL命令(将符号链接视为普通文件)。
对于–newer-than选项,你可以使用文件或时间作为参数。时间参数的格式同at命令,如now-7days、week age等。如果指定为文件,将采用文件的修改时间。
冗长输出级别可以通过–verbose=level选项或者使用多个-v选项进行设定,比如-vvv。冗长输出级别为:
0 – 无输出(默认)
1 – 打印动作
2 – +打印不删除的文件名(当没有采用-e选项时)
3 – +打印
–only-newer关闭文件大小比较,只上传/下载新的文件,即使文件大小存在差异,默认情况下旧的文件会被新的文件代替。
当用URL代替目录时,可以对两台服务器上的目录进行镜像操作。只要可以,会自动使用FXP在FTP服务器之间进行文件传输。
一些ftp服务器默认隐藏了.开头的文件(如.htaccess),只会在LIST命令使用-a选项时显示。在这种情况下,使用设置set ftp:list-options -a。
mkdir [-p] dir(s)
创建远程目录。如果使用-p参数,将创建路径的所有相关目录。
module module [ args ]
使用dlopen函数加载已知模块。如果模块名中不包含/,将在module:path指定的位置搜索模块。参数会被传给module_init函数,具体技术细节可查看README.modules。
more files
与cat files | more命令相同。
mput [-c] [-d] [-a] [-E] [-O base] files
上传符合通配符规则的文件。默认使用本地文件名作为远程的文件名,可以使用-d选项修改。
-c 继续上传
-d 创建与文件路径中目录名相同的目录,并将文件放到对应目录,而不是当前目录
-E 传输成功后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定目标目录或URL
mrm file(s)
与glob rm命令相同,删除符合通配符规则的文件。
mv file1 file2
将文件file1重命名为file2。
nlist [args]
列出远程文件名。
open [-e cmd] [-u user[,pass]] [-p port] host|url
打开一台ftp服务器。
pget [OPTS] rfile [-o lfile]
使用多个连接下载同一文件,可提高下载速度,但会加重网络和服务器的负载,影响其他用户。尽量只在紧急时使用。选项:
-c 继续传输;需要文件lfile.lftp-pget-status
-n maxconn 设置最大连接数(默认使用pget:default-n设置)
put [-E] [-a] [-c] [-O base] lfile [-o rfile]
将文件lfile上传到远程并存为rfile。如果忽略-o参数,lfile中的文件名将被作为远程的文件名。如需扩展通配符,请使用mput。
-o <rfile> 指定远程文件名(默认为lfile中的文件名)
-c 继续上传,需要远程文件的覆盖权限
-E 传输完成后删除源文件
-a 使用ascii模式(默认为二进制模式)
-O <base> 指定目标目录或URL
pwd [-p]
打印当前的远程URL。使用-p参数在URL中显示密码。
queue [-n num ] cmd
将指定命令放入队列来依次执行。每个站点维护一个命令队列。-n参数将指定命令放入队列中指定位置。不要将cd或lcd命令加入队列,这可能使lftp执行出现混乱。应在queue命令之前使用cd/lcd切换目录。允许通过queue wait <jobno>命令将正在执行的任务加入队列,任务将继续执行即使它不是队列中的第一个。
queue stop将停止队列,它将不再执行任何新的命令,但正在执行的命令会继续执行。你可以使用queue stop命令来创建一个空的暂停队列。queue start命令可以重新启动命令执行。当你退出lftp时,它将自动启动所有暂停的队列。
没有指定参数的queue命令将创建一个暂停队列或者打印队列状态。
queue –delete|-d [index or wildcard expression]
删除队列中的一个或多个条目。如果没有指定参数,会删除队列中的最后一个条目。
queue –move|-m <index or wildcard expression> [index]
将指定条目移动到队列的指定位置;如没有指定位置,将会移动到末尾。
-q 不输出任何提示
-v 输出详细的提示
-Q 以特定格式输出,可以被重新加入队列
0102030405060708091011 > get file & [1] get file > queue wait 1 > queue get another_file > cd a_directory > queue get yet_another_file queue -d 3 删除队列中的第3个条目 queue -m 6 4 移动队列中的第6个条目到第4个条目之前 queue -m "get*zip" 1 移动所有符合get*zip的命令道队列最开始(条目顺序不变) queue -d "get*zip" 删除所有所有符合get*zip的命令
quote cmd
FTP协议下,将直接向服务器发送命令。使用时需要注意:它将导致远程处于未知状态,导致重新连接,即使重新连接状态仍然无法被重置。
HTTP协议下,语法为quote <command> [<args>],command可以为set-cookie或post。
1234 open http://www.site.net quote set-cookie "variable=value; othervar=othervalue" set http:post-content-type application/x-www-form-urlencoded quote post /cgi-bin/script.cgi "var=value&othervar=othervalue" > local_file
FISH协议下,将直接向服务器发送命令。使用此方法可以在服务器上执行任何命令。但执行的命令不能需要输入和在新行的开头打印###,否则将导致协议失去同步。
12 open fish://server quote find -name \*.zip
reget rfile [-o lfile]
与get -c命令相同。
rels [args]
与ls命令相同,但忽略缓存。
renlist [args]
与nlist命令相同,但忽略缓存。
repeat [ -c <count>] [[-d] delay] [command]
重复执行命令。在命令执行之间会加入延时,默认为1秒。-c选项用来限制重复次数。–while-ok将使命令返回非零值时退出循环;–until-ok将使命令返回零值时退出循环。比如:
12 repeat at tomorrow -- mirror repeat 1d mirror
reput lfile [-o rfile]
与put -c命令相同。
rm [-r] [-f] files
删除远程文件。如需要使用通配符规则,请使用mrm代替。-r指定递归删除目录,-f 取消错误消息提示。
rmdir dir(s)
删除远程目录。
scache [session]
罗列缓存的会话,或切换到指定会话。
set [var [val]]
将变量设定为指定值。如果值被忽略了,则取消这个变量。如未指定变量名,将显示被改变的设置变量。可以使用以下选项修改显示:
-a 罗列所有的设置,包括默认值
-d 只罗列默认值
site site_cmd
执行站点命令site_cmd,可以重定向输出。
sleep interval
休眠指定时间间隔然后退出。时间间隔默认以秒为单位,但可以后缀m, h, d来对应表示分钟、小时、天。
slot [name]
选择特定的slot,或者罗列所有已分配的slot。slot是与服务器的一个连接,有点像虚拟控制台。你可以创建连接到不同服务器的多个slot,并可在不同的slot之间进行切换。你同样可以使用slot:name作为伪URL表示那个slot位置。
默认情况下,可以使用Meta-0 至 Meta-9(往往使用Alt键代替Meta键)快捷键来快速切换0-9的slot。
source file
source -e command
执行file文件中的命令或是有特定command返回的命令。
12 source ~/.lftp/rc source -e echo help
suspend
暂停lftp进程。注意:传输任务同样或被暂停直到你使用shell的fg或bg命令继续执行这个进行。
user user [pass]
user URL [pass]
使用特定的信息登陆远程ftp。如果你对URL指定了用户名,输入的密码将被缓存起来供以后使用。
version
打印lftp版本信息。
wait [jobno]
wait all
等待特定任务终止。如果忽略jobno,将等待最后一个后台任务终止。wait all等待所有任务终止。
zcat files
与cat相同,但通过zcat过来每个文件。
zmore files
与more相同,但通过zcat过来每个文件。
lftp设置
lftp启动时执行~/.lftprc 和~/.lftp/rc。你可以在这两个文件中加入alias或set命令。如果你想看到完全的协议调试过程,可以使用debug来打开调试。
系统级的启动文件为/etc/lftp.conf。
lftp拥有众多设置项,可以通过set -a命令查看所有设置项及它们的值。
lftp命令选项
-d 切换到调试模式
-e commands 执行指定的命令,并且不退出
-p port 使用执行端口进行连接
-u user[,pass] 使用执行的用户名和密码进行连接
-f script_file 执行文件中的命令并且退出
-c commands 执行指定的命令并且退出
环境变量
以下环境变量将被lftp使用:
HOME 作为~的扩展
SHELL 在!命令时决定使用哪个shell来运行
PAGER 作为页面名称,在more和zmore命令中使用
http_proxy, https_proxy 作为初始时http:proxy, hftp:proxy, https:proxy的值
ftp_proxy 作为初始时ftp:proxy或hftp:proxy的值(由环境变量中的URL协议指定)
no_proxy 作为初始时的net:no-proxy值
LFTP_MODULE_PATH 作为初始时的module:path值
LFTP_HOME 用于定位用户配置文件的目录,如未设置将使用~/.lftp
相关文件
/etc/lftp.conf 系统级启动文件。实际位置由–sysconfdir配置项决定。
~/.lftp/rc, ~/.lftprc 这些文件在/etc/lftp.conf之后被执行。
~/.lftp/log 用于记录lftp运行于后台nohup模式时的日志。
~/.lftp/bookmarks 用户保存lftp中的书签。
~/.lftp/cwd_history 用于保存每个站点的当前工作目录。
~/.netrc 用于保存站点的用户名和密码。
发表评论
-
Installing_Nginx_With_PHP5_And_MySQL_Support_On_Debian_Squeeze.rar
2013-03-17 20:37 656Installing_Nginx_With_PHP5_And_ ... -
Debian 6 下搭建nginx 1.3
2013-03-17 18:27 17111 准备debian 6.0环境 2 下载需要安装的 ... -
linux 常用命令
2012-11-04 01:21 680ps 查看进程 kill -9 PID stop ps ... -
ubuntu12.04(11.10)下修改刷新频率的方法
2012-06-17 21:52 1830Ctrl + Alt + T, 启动终端 运行 xrand ... -
nginx搭建负载均衡服务器
2012-05-14 00:42 1017前言:本文是我撰写的关于搭建“Nginx + PHP(Fas ... -
webbench
2012-04-09 23:59 654webbench -
linux 下工具汇总...
2012-02-13 18:10 810linux 下命令行浏览 网页的工具 curl , lyn ... -
svn常用命令
2011-12-29 09:57 1102由于在Linux下一直没有找到好的svn工具(类似于To ... -
图文解说Ubuntult;-->Window远程桌面连接
2011-12-07 11:46 1141http://doc.chinaunix.n ... -
VIM删除每行的前N个字符
2011-11-17 21:47 2834... -
Linux 文件和目录管理之列出、删除、复制、移动及改名
2011-10-28 23:06 1638作者: 北南南北来自 ... -
Fedora 15 安装与配置一览
2011-10-28 14:37 842Fedora 15 将于2011.5.24日发布,今 ... -
Ubuntu 11.04更改分辨率
2011-10-26 11:07 1144http://www.pczgc.com 编辑:chinabe ... -
删除svn文件
2011-10-21 10:46 659删除svn文件 sudo find . -name .svn ... -
Ubuntu11.10正式发布 包括桌面和服务器等版本
2011-10-14 13:29 854Ubuntu 11.10(Oneiric Ocelot)如 ... -
ubuntu 9.10创建samba共享的问题
2011-09-16 17:49 764新建一个文件夹,右键选择属性,并选择sh ... -
下看ubuntu下硬件的相关信息
2011-09-08 09:30 720查看CPU信息 cat /proc/cpuinfo ... -
gedit中文乱码
2011-08-22 15:53 947好多情况下 gedit 在打开 windows 分 ... -
linux 下的crontab如何写
2011-08-15 13:31 991wscdlzhom发布于 2008-2-24 | 439 ... -
Ubuntu定时执行.sh脚本
2011-08-15 11:10 1525在Ubuntu中备份svn上传的代码,将备份的文件命名为s ...
相关推荐
### lftp 使用手册详解 #### 一、简介 lftp 是一个高级的文件传输程序,支持 FTP、HTTP、HTTPS、SFTP 等多种协议,适用于复杂的文件传输场景。它能够处理非致命错误并自动重试操作,确保数据传输的可靠性。此外,...
6. Linux网络客户端工具:学习如何使用基本的网络客户端工具,例如lftp进行文件传输和备份,以及通过SSH进行远程连接。 7. 系统启动和管理:理解系统启动过程中的管理知识,如更改默认的runlevel、系统服务管理...
- **使用方法**:输入`man command_name`,例如`man ls`,查看`ls`命令的手册页。 #### 4. cat `cat`命令用于显示文件内容,也可以用来连接多个文件并输出到标准输出。 - **查看文件内容**:`cat filename`。 - **...
"Readme-说明.htm"这个文件可能是xfp40的使用手册或者帮助文档,其中包含了详细的安装步骤、配置方法、功能介绍以及常见问题解答。通常,用户在初次使用时应先查阅这个文档,了解如何正确地安装和使用该工具。 在...
查看帮助一般可以使用man命令,例如`man lftp`会显示lftp命令的手册。目录操作主要有切换工作目录(cd)、显示当前目录(pwd)、创建目录(mkdir)、删除目录(rmdir)等。例如`cd -`是回到上一个工作目录,`mkdir -...
本书不仅包括了基础知识点,如GUI和CLI的区别、UNIX的使用习惯,还包括了相对高级的主题,如文件系统的管理、内核编译、版本控制以及各种软件工具的使用方法。这些知识点对想要深入了解并高效使用Ubuntu的用户来说...
- `man`:提供命令的手册页,通过`man command`查看某个命令的使用方法。 - `info`:提供更详细的命令指南,`info info`可以获取关于`info`命令本身的使用信息。 2. **文件操作**: - `cat`:用于查看和拼接文件...
标题中的“proftpd安装.rar”表明这是一个关于在CentOS 7.9系统上安装ProFTPD服务器的压缩包文件,包含了安装过程、配置文件、虚拟...通过详细阅读提供的文档和配置文件,可以深入了解ProFTPD的运行机制和管理方法。