Linux 如何使用wget镜像目录而不创建父目录?
我想通过FTP镜像文件夹,如下所示:Linux 如何使用wget镜像目录而不创建父目录?,linux,ftp,wget,mirror,Linux,Ftp,Wget,Mirror,我想通过FTP镜像文件夹,如下所示: wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper 但我不想创建这样的目录结构: wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper ftp.site.com->文件夹->子文件夹->文件夹 我只想: 更深 它下面的任何东西都是结
wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper
但我不想创建这样的目录结构:
wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper
ftp.site.com->文件夹->子文件夹->文件夹
我只想:
更深
它下面的任何东西都是结果结构。只要在服务器上为evendeer
的子目录创建子目录,evendeer
的内容也可以在当前目录中结束
我知道-np
选项,根据文档,它只是防止它跟随父页面的链接(对于我通过FTP镜像的二进制文件来说,这不是问题)。我也知道-nd
选项,但这会阻止创建任何目录结构,即使是的子目录
我会考虑备选方案,只要它们是基于命令行的,很容易得到Ubuntu包,并且很容易像WGET一样。
<代码> -NP<代码>(无父)选项可能会做你想要的,与<代码> -L 1 < /代码>(我想,在我之前没有WGET安装),这限制递归到一个级别。
编辑。好啊嘎。。。也许我应该等到我喝了咖啡。。有一个--cut
或类似选项,允许您从输出路径“剪切”指定数量的目录,因此对于/a/b/c/d
,剪切2将迫使wget在本地计算机上创建c/d
路径,如:ftp.site.com/a/b/c/d
-nH
将所有文件下载到当前目录下的目录a/b/c/d
,而-nH--cut dirs=3
将所有文件下载到当前目录下的目录d
。而不是使用:
-nH --cut-dirs=1
使用:
这将剪切更多目录,并且不会创建任何文件夹
注意:100=要跳过创建的文件夹数。
您可以将100更改为任何数字。我也有类似的要求,以下组合似乎是最佳选择:
在下面的示例中,将(单独)中的所有文件下载到本地目录/dest/dir
wget -nd -np -P /dest/dir --recursive http://url/dir1/dir2
谢谢@ffledgeling在“-nd”上的提示
对于上述示例:
wget -nd -np --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper
手册中的代码片段:
-nd
--no-directories
Do not create a hierarchy of directories when retrieving recursively. With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
filenames will get extensions .n).
-np
--no-parent
Do not ever ascend to the parent directory when retrieving recursively. This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.
你的意思是:--cut dirs=2
-而且,-L
是--relative
,所以你可能是指-L
或--level=1
谢谢,-cut dirs是我要找的银弹。如果你需要目录d中的所有文件,我会改为--cut dirs=4,nH只会为我忽略主机目录。您可以设置--cut dirs=100来阻止几乎所有的预目录--tick这对于像ftp.site.com/a/b/c/d/
这样的URL来说是相当明显的,一个人只需要d/
及其子文件夹中的内容。wget是否有自动切割选项或类似的功能,可以自动检测切割深度?@con-f-use我希望@Rex(和in)建议的--cut dirs=100
技巧能够实现这一点,但遗憾的是,它的工作原理类似于-nd
,也就是说,它将整个层次结构(包括您正在下载的子目录下的子目录)展平。看起来没有单独使用wget的自动解决方案……那么为什么不直接使用-nd呢?