Linux 如何使用wget镜像目录而不创建父目录?

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->文件夹->子文件夹->文件夹 我只想: 更深 它下面的任何东西都是结

我想通过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->文件夹->子文件夹->文件夹

我只想:

更深

它下面的任何东西都是结果结构。只要在服务器上为
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呢?