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

将默认Shell从bash改为zsh后curl -o命令报错:curl: (56) response reading failed

解决zsh环境下curl报错(56) response reading failed (errno: 36)的问题

问题背景

之前在bash环境中运行以下curl命令完全正常:

curl -o '/Users/tomasjelinek/Google Drive/Můj disk/ISP_Orders_last.csv' 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

切换到zsh后,出现报错:

curl: (56) response reading failed (errno: 36)

即使设置zsh为默认Shell,报错依然存在。

错误原因分析

errno:36对应macOS系统的ENAMETOOLONG(路径/文件名过长),但核心问题是zsh与bash对包含特殊字符(空格、带重音字母)的路径/URL解析逻辑存在差异,同时zsh的默认文件名匹配选项可能干扰curl的参数传递。

解决方法

1. 调整路径的引号使用

将本地路径改用双引号包裹,确保zsh正确解析带重音的字符:

curl -o "/Users/tomasjelinek/Google Drive/Můj disk/ISP_Orders_last.csv" 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

也可以用反斜杠转义路径中的空格:

curl -o /Users/tomasjelinek/Google\ Drive/Můj\ disk/ISP_Orders_last.csv 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

2. 拆分输出路径,避免长路径干扰

先切换到目标目录,再执行curl命令,减少路径长度并避免特殊字符解析问题:

cd "/Users/tomasjelinek/Google Drive/Můj disk"
curl -o ISP_Orders_last.csv 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

或者使用curl的--output-dir参数指定输出目录:

curl --output-dir "/Users/tomasjelinek/Google Drive/Můj disk" -o ISP_Orders_last.csv 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

3. 检查curl版本一致性

zsh和bash可能使用不同版本的curl(比如系统自带vs brew安装),分别在两个Shell中执行以下命令确认:

which curl
curl --version

如果版本不同,调整zsh的PATH环境变量,确保使用与bash相同的curl版本。

4. 禁用zsh的文件名匹配选项

zsh的nomatch选项会对URL中的特殊字符(如%)触发文件名匹配,导致参数传递错误。可以在命令前加noglob前缀禁用该行为:

noglob curl -o '/Users/tomasjelinek/Google Drive/Můj disk/ISP_Orders_last.csv' 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'

或者临时关闭nomatch选项:

setopt nonomatch
curl -o '/Users/tomasjelinek/Google Drive/Můj disk/ISP_Orders_last.csv' 'ftp://Tomas%20Jelinek:PASSWORD@XX.XX.XXX.X/Marketing/Reports/60%20ISP%20Report/ISP_Orders_last.csv'
setopt nomatch  # 恢复默认设置

内容的提问来源于stack exchange,提问作者Tomáš Jelínek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:54:59