《其实你不懂wget的心-03》

[ 2013-08-26 09:40:00 | 作者: admin ]
字号: | |
当你深入学习wget时,你会发现它的选项实在是太多了,错综复杂乱如麻。今天,我们就针对常用的目录选项展开讨论。

1 -r选项

这个选项用于下载远程的文件夹,但是情况没有那么简单,对于ftp协议下载来讲,你如果使用如下命令下载

wget -r ftp://my.test.server:/home/wupengchong/img

那么,实际在当前目录下会生成my.test.server/home/wupengchong/img目录结构,可见直接使用-r选项,默认会创建一域名和绝对路径组成的目录结构的。这或许不是我们的初衷,继续向下看。

2 -nd选项

即–no-directories。当我们下载远程的数据时,可以要求wget只下载文件,不下载文件夹,所有下载的文件都平铺在当前目录下。

这时,敏锐的读者会问:“如果下载到不同路径的同名文件的话,那用-nd岂不是会造成同名文件覆盖的问题?”。答案是不会的,因为wget在下载文件时,如果当前目录下有同名文件,则会默认在新下载的文件后加上“.1”、“.2” …等标识,以示区别。

3 -x选项

即–force-directories。这个选项和–no-directories是完全相反的。–no-directories是要求绝 对不能下载和创建任何文件夹,同时所有文件都平铺在当前目录中。而–force-directories选项则要求处处都要有文件夹,即使是wget
-x http://fly.srk.fer.hr/home/robots.txt这样下载单独普通文件的命令,也会在当前目录下创建fly.srk.fer.hr/home目录结构,然后将robots.txt文件下载到fly.srk.fer.hr/home里面。

4 -nH选项

即–no-host-directories。大家已经知道了在使用wget -r命令下载目录时,默认会创建一个my.test.server文件夹的。使用-nH选项就是来禁止这种默认行为。

所以,当你用wget -r -nH ftp://my.test.server:/home/wupengchong/img命令下载数据时,会在当前目录下创建home/wupengchong/img目录结构,看,my.test.server文件夹已经不见了。

5 –protocol-directories选项

它的作用是先创建一个以协议名为名称的文件夹,例如:

wget -r –protocol-directories ftp://my.test.server:/home/wupengchong/img

则会创建如下目录结构ftp/my.test.server/home/wupengchong/img

这个选项,对于那些希望通过协议类型来区分数据的同学比较有用。

6 –cut-dirs=number选项

这个选项比较常用,它表示下载数据时,在本地创建目录时,忽略多少层目录结构。

我们拿ftp://ftp.xemacs.org/pub/xemacs/为例,如果只使用-r选项,那么本地会创建ftp.xemacs.org /pub/xemacs/目录结构,如果再加上-nH选项,则留下来的目录结构是pub/xemacs/。此处就是–cut-dirs选项起作用的地方 了。我们看一个表格吧:

只用-r选项 -> ftp.xemacs.org/pub/xemacs/

-nH -> pub/xemacs/

-nH –cut-dirs=1 -> xemacs/

-nH –cut-dirs=2 -> .

–cut-dirs=1 -> ftp.xemacs.org/xemacs/

7 -P选项

即–directory-prefix=prefix,所设置的这个prefix路径,则是用来代替当前目录的,所有本应下载到当前目录的数据都会被下载到prefix所设置的目录中去。

[未完待续]http://roclinux.cn/?p=2163
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2106

这篇日志没有评论。

此日志不可发表评论。