使用wget命令以--no-parent参数递归获取目录

19

我正在尝试使用以下命令下载目录中的所有文件:

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908

但是wget正在从父目录提取文件,尽管我指定了--no-parent。我只想要ORD20130908目录中的文件。

2个回答

31

您需要在URL中添加一个斜杠,以表示最后一项是目录而不是文件:

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908/

根据文档,对于HTTP(和HTTPS),末尾的斜杠对于“--no-parent”非常重要。HTTP没有“目录”的概念——Wget依赖于您指示什么是目录,什么不是目录。在“http://foo/bar/”中,Wget将认为“bar”是一个目录,而在“http://foo/bar”中(没有斜杠),“bar”将被视为文件名(因此,“--no-parent”是无意义的,因为其父级是“/”)。


你确定你将“/”添加到了正确的位置吗?看起来你是在前缀路径上添加“/”。 - nhahtdh
我已经测试了在URL末尾添加/的效果,因此我可以自由地相应地编辑答案。 - nhahtdh
好的回答。我希望wget会直接报错而不是默默地忽略一个参数。 - Daniel Kaplan

4

太好了,-I 真的很有用! - joelostblom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接