如何用wget仅下载指定子目录pyVim及其全部内容?
解决wget仅下载指定子目录pyVim的问题
我之前也踩过这个wget的坑!明明只想单独拉取pyVim目录,结果各种参数试下来,父目录还是跟着一起下载了。别着急,试试这个精准的命令组合:
wget -r --no-parent --cut-dirs=3 -nH http://server/pub/scripts/pyVim/
给你拆解下每个参数的作用,为啥它们组合起来就管用:
-r:递归下载目录下所有内容,这个你应该已经用到了--no-parent:核心参数,禁止wget去爬取父目录的内容,避免把pub、scripts这些上层目录也拖下来--cut-dirs=3:跳过URL里的前3层目录(server、pub、scripts),这样就不会在本地生成这些多余的层级,直接把pyVim目录放到当前路径下-nH:禁用“主机名目录”,防止wget自动创建以server命名的顶级文件夹
⚠️ 重要提醒:URL的末尾一定要加上斜杠/!如果不加,wget会把pyVim当成单个文件处理,要么下载失败,要么还是会带出上层目录结构。
如果觉得手动数目录层数麻烦,也可以用另一种更灵活的写法(效果完全一致):
wget -r --no-parent --cut-dirs=$(echo "http://server/pub/scripts/pyVim/" | tr '/' '\n' | grep -v ^$ | wc -l) -nH http://server/pub/scripts/pyVim/
执行完命令后,你当前目录下就会直接出现完整的pyVim文件夹,里面的所有子文件、子目录都能正常下载,完全不会有多余的父目录干扰~
内容的提问来源于stack exchange,提问作者askpython
相关产品推荐
相关产品推荐

