我有一个web目录,我存储一些配置文件.我想使用wget来拉下这些文件并保持它们当前的结构.例如,远程目录如下所示:
http://mysite.com/configs/.vim/
.vim拥有多个文件和目录.我想使用wget在客户端上复制它.似乎找不到正确的wget标志组合来完成这项工作.有任何想法吗?
您必须将-np
/ --no-parent
选项传递给wget
(除了-r
/ --recursive
,当然),否则它将跟随我站点上的目录索引中的链接到父目录.所以命令看起来像这样:
wget --recursive --no-parent http://example.com/configs/.vim/
要避免下载自动生成的index.html
文件,请使用-R
/ --reject
选项:
wget -r -np -R "index.html*" http://example.com/configs/.vim/
以递归方式下载目录,拒绝index.html*文件并下载没有主机名,父目录和整个目录结构:
wget -r -nH --cut-dirs=2 --no-parent --reject="index.html*" http://mysite.com/dir1/dir2/data
对于其他有类似问题的人.Wget跟随robots.txt
,可能不允许你抓住网站.不用担心,你可以把它关掉:
wget -e robots=off http://www.example.com/
http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
你应该使用-m(镜像)标志,因为它注意不要弄乱时间戳并无限地递归.
wget -m http://example.com/configs/.vim/
如果你在这个帖子中添加其他人提到的点,那就是:
wget -m -e robots=off --no-parent http://example.com/configs/.vim/
这是完整的wget命令,它可以帮助我从服务器的目录下载文件(忽略robots.txt
):
wget -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --reject="index.html*" --no-parent --recursive --relative --level=1 --no-directories http://www.example.com/archive/example/5.3.0/
如果--no-parent
没有帮助,您可以使用--include
选项.
目录结构:
http:///downloads/good http:// /downloads/bad
你想下载downloads/good
而不是downloads/bad
目录:
wget --include downloads/good --mirror --execute robots=off --no-host-directories --cut-dirs=1 --reject="index.html*" --continue http:///downloads/good
wget -r http://mysite.com/configs/.vim/
适合我.
也许你有一个干扰它的.wgetrc?
要使用用户名和密码递归获取目录,请使用以下命令:
wget -r --user=(put username here) --password='(put password here)' --no-parent http://example.com/