我想通过FTP镜像文件夹,如下所示:
wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper
但我不想创建这样的目录结构:
ftp.site.com - >文件夹 - >子文件夹 - > evendeeper
我只想:
evendeeper
以下任何东西都是最终的结构。只要为服务器上evendeeper
的子目录创建子目录,evendeeper
的内容就可以在当前目录中结束。
我知道-np
选项,根据文档,它只是让它跟随到父页面的链接(对于我通过FTP镜像的二进制文件没有问题)。我也知道-nd
选项,但这会阻止创建任何目录结构,即使对于evendeeper
的子目录也是如此。
我会考虑替代方案,只要它们是基于命令行的,可以作为Ubuntu软件包随时使用,并且像wget一样易于自动化。
答案 0 :(得分:60)
对于像ftp.site.com/a/b/c/d
-nH
会将所有文件下载到当前目录中的a/b/c/d
目录,-nH --cut-dirs=3
会将所有文件下载到当前目录中的d
目录。
答案 1 :(得分:8)
-np
(没有父级)选项可能会执行您想要的操作,与-L 1
绑定(我认为,在我之前没有安装wget),这会将递归限制在一个级别
EDIT。好。 gah ...也许我应该等到我喝咖啡..有一个--cut
或类似的选项,它允许你从输出路径“剪切”指定数量的目录,所以{{1减少2会强制wget在本地计算机上创建/a/b/c/d
答案 2 :(得分:8)
而不是使用:
-nH --cut-dirs=1
使用:
-nH --cut-dirs=100
这将删除更多目录,不会创建任何文件夹。
注意:100 =要跳过创建的文件夹数。 您可以将100更改为任意数字。
答案 3 :(得分:1)
我有类似的要求,以下组合似乎是完美的选择:
在下面的示例中,http://url/dir1/dir2(单独)中的所有文件都下载到本地目录/ dest / dir
.strip()
感谢@ffledgling提示“ -nd”
对于上述示例:
wget -nd -np -P /dest/dir --recursive http://url/dir1/dir2
手册摘录:
wget -nd -np --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper