Linux命令五分钟

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

本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。

为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅。

===

[正文开始]

系列文章
《其实你不懂wget的心-01》
《其实你不懂wget的心-02》

当你深入学习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所设置的目录中去。

[未完待续]

8条评论

  1. mirrors.163.com的robots.txt的内容是这样的:
    User-agent: *
    Disallow: /.help
    Disallow: /FreeBSD
    Disallow: /FreeBSD-updates
    Disallow: /archlinux
    Disallow: /centos
    Disallow: /cpan
    Disallow: /cygwin
    Disallow: /debian
    Disallow:(以下略)
    难怪以前只下到一个html。

  2. 这下可以堂而皇之的用wget从网易等地制作fedora等rpm软件仓库的镜像了。我制作的是本地镜像,所以只好放到移动硬盘(ntfs)去网吧制作(wget/cwrsync)。而亚太地区的rsync,除掉更新不及时的搜狐源,直接从欧美进行rsync的速度,你知道的……

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *