我正在尝试镜像最多使用 wget 的 ftp 服务器。
这个特定的服务器将数据文件的旧副本保存在每个子文件夹内名为“backup”的文件夹中。例如“/MaffiaOffShore/backup”、“/VeryVeryDodgy/backup”,我并不需要这些,但我尝试使用--reject'备份'并使用 --exclude-directories '备份' 以及其他各种组合,都有相同的结果,整个服务器都被镜像,包括备份文件夹。
这是一个错误还是我遗漏了什么?
答案1
排除目录选项是:
--exclude-directories=List
不是--exclude-directory 正如您在问题中包含的那样
来自 wget男人页
-X list
--exclude-directories=list
Specify a comma-separated list of directories you wish to exclude
from download (@pxref{Directory-Based Limits} for more details.)
Elements of list may contain wildcards.
答案2
如果您想排除/MaffiaOffShore/backup
,/MaffiaOffShore/
请尝试
-x/MaffiaOffShore/backup
或者,
--exclude-directories=/MaffiaOffShore/backup
明确地。
因此,从基本目录中排除所有不需要的目录,因为,
-x/MaffiaOffShore/backup,/VeryVeryDodgy/backup
答案3
是的,你在我的 wget 上的尝试也失败了。不过,我刚刚验证了以下内容对所有嵌套子目录都有效:
wget -r ftp://user@xxx --exclude-directories '/backup,*/backup,*/*/backup,*/*/*/backup'
通配符“*/backup”不会匹配 /backup,但它会匹配像 /something/backup 这样的路径。通配符“*/*/backup”会匹配“/something/else/backup”,等等。