其实你不懂wget的心-01
wget用英语定义就是the non-interactive network downloader,翻译过来就是非交互的网络下载器。
1 wget都支持什么协议的下载?
wget支持HTTP、HTTPS和FTP协议的下载,其中也包括通过HTTP代理的下载。看起来支持的协议没有你想想的多,但其实这已足够,我相信你很少使用除这些协议之外的协议来进行下载吧。
2 wget有哪些特色之处?简单介绍一下。
wget能够跟踪HTML文件和XHTML文件,从而使得你可以下载整个站点的文件,然后离线阅读。当然这个功能并不是特别常用,因为几乎所有站点都会包含外链,一旦你用wget进行整站的下载,它也会傻傻的去下载外链站点的内容,这样一来,子子孙孙无穷尽也。
wget是个非常遵守Robot Exclusion Standard(robots.txt)标准的工具。
wget支持慢速网络下载和不稳定网络的下载。当因为网络不稳定而导致下载失败时,wget会重试直到把目标文件下载下来为止。
wget支持断点续传功能,当你下载的很大的文件在中途失败时,这项功能会很有用处。
3 对于使用wget选项,有什么建议?
由于wget是使用getopt函数来处理选项和参数的,因此wget既支持长格式的选项,也支持短格式的选项,他们大部分是一一对应的关系。但是我不建议大家使用短选项。
当某个选项有参数时,你甚至可以在短选项和参数之间不加空格。比如-o log可以写成-olog。但是,你知道的,这也是不建议的。
如果你连续使用了多个短选项,且这些短选项不需要加参数,那么可以将他们组合在一起。比如-d -r -c可以写成-drc。恩,这是被建议的。呵呵
4 wget有什么潜规则不?
当你使用wget时,请务必查看/etc/wgetrc文件和家目录下的.wgetrc文件,先搞清楚里面都设置了什么,再来使用wget命令不迟,否则,你早晚会吃大亏的。不是危言耸听哦。
某些选项还可以接受用逗号隔开的参数。比如-X(大写的x)选项,它是用来设定"不希望下载"的目录列表。你可以用逗号把不希望下载的目录一个一个写上。比如"wget -X wukong , bajie",这样wget心里就有数了,他知道wukong目录和bajie目录都是不用下载的。其实你也可以在.wgetrc文件中设置"不希望下载"的目录列表,格式是这样的:
exclude_directories=wukong,bajie
于是,你不必在wget命令上设置,就可以实现"不下载"wukong和bajie目录。
当然,如果某天你下载东西时,发现总有几个目录下载不下来,你可要想到,有可能是其他人设置了.wgetrc造成的哦!当然你还要再去/etc/wgetrc文件中再查看一下,那里也是一个可疑的地方。
还有一个小技巧,也可以避免这种误会(别人设置了exclude_directories,而你却不知道),那就是在你使用wget时,这样写:
wget -r -X " -X wukong,bajie ftp://localhost
使用-X "的目的就是去除.wgetrc和/etc/wgetrc的作用,然后再用-X wukong,bajie设置,就可以踏踏实实的保证不下载wukong和bajie目录,而其他目录绝不会受影响。
小总结一下:.wgetrc和-X和/etc/wgetrc的设置都是属于平等关系,三者在使用时会进行并集。而在设置了-X "时,就完全去掉了.wgetrc和/etc/wgetrc对于目录限制的作用。
5 wget不是只能下单个文件么?怎么能下目录呢?
你也太小看wget了。加上-r选项你试试,这就是传说中的"递归下载"。呵呵
6 wget命令的版本是多少?
使用wget -V(注意是大写的v哦)就可以查看了,或者是–version。我的是1.11.4(Red Hat Modified)
7 我怎么能让wget进入后台执行呢?
使用–background!启动的wget会立即进入后台执行。如果没有使用-o选项设置日志文件的话,缺省是记录在当前目录的wget-log文件中,其实这个日志就是当初输出到屏幕上的那些东东。更重要的一点是,即使你的远程终端连接被ctrl-D或exit了,也不会影响wget的后台执行。
有人会问,我使用wget -r ftp://localhost/a &是不是也可以进入后台阿。你可以试试看,这样写不行的。你会发现即使瞬间看到命令提示符了,但也会瞬间被刷新了的进度条所重新覆盖。而且你使用ctrl-c还无法终止。只能kill进程来杀掉。所以说,如果你想进入后台执行,还是老老实实的使用–background吧!
8 wget在下载网站时如果遇到robots.txt全禁怎么办?
这时候,你可以使用"–execute 选项加参数",它和把参数放到.wgetrc里的效果是一样的。你使用–execute robots=off就可以躲开robots.txt的追捕喽!
其实你不懂wget的心-01的更多相关文章
- 【转】wget(二)
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- jquery+jplayer实现歌词同步的mp3音乐播放器效果
实例预览 下载地址 实例代码 <div class="container"> <div class="demo"> <textar ...
- Linux系统信息查看命令大全
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostna ...
- SmartJS 系列规划分享和背景介绍
发布了smartjs后,有朋友问:“没看懂究竟是干嘛的”.唉,打击了,每次我都想高唱其实你不懂我的心. 今天把相关的东西都整理了一遍,给大家介绍一下.里面绝大多数都已经实现过,有些则是有新的思路重做或 ...
- Linux命令行技巧
Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...
- Linux 命令行技巧
这是一个linux常见命令的列表.那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝.所有的命令已在Fedora和Ubuntu下做了测试 命令 ...
- linux常见命令的列表
http://www.pixelbeat.org/cmdline_zh_CN.html 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man ...
- 对中级Linux 用户非常有用的20 个命令
也许你已经发现第一篇文章非常的有用,这篇文章是继对初级Linux用户非常有用的20个命令的一个延伸. 第一篇文章的目的是为新手准备的而这篇文章则是为了Linux的中高级用户.在这里你将学会如何进行自定 ...
- 一个linux常见命令的列表
这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...
随机推荐
- javascript this关键字
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 高效批量更新 sql 字段的值(从一个表向另一个表更新)
里给出一种更高效.简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer.Oracle.DB2下的写法--关键点:t4和t1是同一个table,primary k ...
- HDU 2458 - Kindergarten
有一堆男孩和女孩,男孩和男孩之间,女孩和女孩之间互相认识,给出一堆男孩女孩之间认识的关系, 问一个组里最多多少人相互都认识 那么 二分图里 将不认识的连线 那么 相互认识的人最多 就为 最大独立点集 ...
- linux 查看目录名称的方法
1. ls -d * 2. grep查找以'/'结尾的,也就是目录 ls -F | grep '/$'
- C# 调用c++报错可能性分析
1.在调用之前,可以用工具(Dependency)检测下c++库所依赖的文件,看是否有错误.如果有错误,请先下补充所需运行环境. 2.如果c++ 函数 形参需要C#传入结构体,可如下: [Struct ...
- DDD的"waiting until GDB gets ready"
运行DDD调试器时,出现卡死现象,看软件状态,发现"waiting until GDB gets ready",Google了这个问题,很多都是删除文件夹"~/.ddd& ...
- AngularJS 中的 Promise 和 设计模式
解决 Javascript 异步事件的传统方式是回调函数:调用一个方法,然后给它一个函数引用,当这个方法完结的时候执行这个函数引用. <!-- lang: js --> $.get('ap ...
- 初始seajs
SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制 SeaJS本身遵循KISS(Keep It Simple, Stupid ...
- SquirrelMQ消息队列
SquirrelMQ是一个快速的消息队列. SquirrelMQ特性: 1. SquirrelMQ使用Slab内存分配算法来降低内存碎片,使用epoll来解决高并发问题.效率比redis要高,使用简单 ...
- docker 使用Data Volume 共享文件
Adding a data volume You can add a data volume to a container using the -v flag with the docker run ...