macOS Big Sur 11.6执行scp命令传文件提示file size limit exceeded如何解决
macOS下scp传输大文件触发file size limit exceeded报错解决方案
问题根因
你观测到的ulimit -f返回值200000是当前shell会话的单文件最大限制,macOS默认单块大小为512字节,计算可得200000×512B≈97.6MB,刚好匹配你传输到95MB左右触发限制的现象。launchctl limit控制的是系统全局守护进程的资源限制,对当前终端会话中启动的进程不生效,因此scp优先读取shell的ulimit配置。
解决方法
临时生效(仅当前终端会话有效)
直接在执行scp的终端窗口执行如下命令,修改当前会话的文件大小限制:
ulimit -f unlimited
修改完成后再执行scp命令即可正常传输大文件,关闭终端后配置会自动重置。
永久生效
根据你使用的shell类型,将配置写入对应终端启动文件,后续新开终端都会自动加载该配置:
- 若使用zsh(macOS 10.15 Catalina及之后版本默认shell):
- 编辑用户目录下的.zshrc文件:
nano ~/.zshrc - 在文件末尾新增一行:
ulimit -f unlimited - 保存退出后执行
source ~/.zshrc立即生效
- 编辑用户目录下的.zshrc文件:
- 若使用bash:
- 编辑用户目录下的.bash_profile或.bashrc文件:
nano ~/.bash_profile - 在文件末尾新增一行:
ulimit -f unlimited - 保存退出后执行
source ~/.bash_profile立即生效
- 编辑用户目录下的.bash_profile或.bashrc文件:
修改完成后可执行ulimit -a查看file size参数,确认已变为unlimited即可。
内容的提问来源于stack exchange,提问作者Andrej Kohleber
相关产品推荐
相关产品推荐

