You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重用会话下载Cityscapes数据集时出现wget报错该如何解决

报错根因

你遇到的no matches found报错和重复使用会话无关,是zsh的默认机制导致的:zsh会自动将URL中的?、&等字符识别为通配符,尝试匹配本地同名文件,当没有找到匹配的文件时就会抛出该错误。首次运行成功通常是当时运行环境临时关闭了通配符匹配,或刚好存在匹配规则的本地文件。

解决方案

优先推荐第一种方案,通用性最高:

  • 方案1:用引号包裹URL
    把包含特殊字符的完整URL用单/双引号包裹,阻止zsh做通配符解析,修改后的脚本如下:
    # 登录获取cookie
    wget --keep-session-cookies --save-cookies=cookies.txt --post-data 'username=USERNAME&password=PASSWORD&submit=Login' 'https://www.cityscapes-dataset.com/login/'
    # 下载数据集
    wget --load-cookies cookies.txt --content-disposition 'https://www.cityscapes-dataset.com/file-handling/?packageID=1'
    
  • 方案2:临时关闭zsh通配符校验
    在脚本开头添加setopt nonomatch配置,遇到无法匹配的通配符时zsh会直接把字符串原样传递给命令,不会触发报错:
    setopt nonomatch
    wget --keep-session-cookies --save-cookies=cookies.txt --post-data 'username=USERNAME&password=PASSWORD&submit=Login' https://www.cityscapes-dataset.com/login/
    wget --load-cookies cookies.txt --content-disposition https://www.cityscapes-dataset.com/file-handling/?packageID=1
    
  • 方案3:转义特殊字符
    给URL中的?、&这类特殊字符前加反斜杠\转义,明确告知zsh该字符不需要作为通配符处理:
    wget --keep-session-cookies --save-cookies=cookies.txt --post-data 'username=USERNAME&password=PASSWORD&submit=Login' https://www.cityscapes-dataset.com/login/
    wget --load-cookies cookies.txt --content-disposition https://www.cityscapes-dataset.com/file-handling/\?packageID=1
    
附加说明

如果调整后仍然出现403/权限不足类的报错,再考虑会话失效的问题:直接删除本地旧的cookies.txt文件,重新运行脚本即可获取新的有效会话,Cityscapes站点的会话cookie有效期通常只有数小时,过期后无法复用下载。

内容的提问来源于stack exchange,提问作者fatpanda2049

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:54:04