本文来自依云's Blog,转载请注明。
拿wget下文件,它总是把URL的查询部分(?q=test
这种)附加到默认的文件名后,让人十分不爽。查了man手册,也Google过,结论是没有办法解决。虽说拿shell写个脚本在下载完之后把这种尾巴也不难,但总觉得应该从根本上解决问题。于是就hack源码了。
要改的地方其实很好找,在url.c
的第1556行附近:
/* Append "?query" to the file name. */ u_query = u->query && *u->query ? u->query : NULL; if (u_query) { append_char (FN_QUERY_SEP, &fnres); append_uri_pathel (u_query, u_query + strlen (u_query), true, &fnres); }
把这几行注释掉,然后重新编译就可以了。不需要安装,可以直接覆盖掉系统的wget,但不推荐,因为更新后就没了。我是把它放到~/bin
下。这个目录在我的$PATH
变量的前面,所以会优先使用这里的wget。
Oct 30, 2010 11:29:50 PM
好勤快啊,wget也编译。哈哈
Oct 31, 2010 02:23:06 AM
没办法,谁叫它不合我意呢~