IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

其实你不懂wget的心-03

linux大棚-roclinux.cn 2011-02-11 22:50:50 累计浏览 3,632 次
本机暂存

    系列文章

     《其实你不懂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所设置的目录中去。

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. WEB系统需要关注的一些点 (累计阅读 18,219)
  2. 批量添加主机到cacti+nagios的监控报警系统中 (累计阅读 14,993)
  3. 调试工具之GDB (累计阅读 14,830)
  4. Linux命令行里的“瑞士军刀” (累计阅读 11,586)
  5. 强制刷新本地 DNS 缓存记录 (累计阅读 10,918)
  6. Linux date 命令获取某日期的前一天 (累计阅读 9,881)
  7. rsync同步的艺术 (累计阅读 9,601)
  8. ps 命令常见用法 (累计阅读 9,501)
  9. linux下搜索find命令详解 (累计阅读 9,460)
  10. 应该知道的Linux技巧 (累计阅读 8,947)