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

如何编辑远程服务器上的JSON文件?添加元素时命令执行报错

解决远程服务器JSON文件添加元素的命令报错问题

我来帮你捋清楚问题出在哪,以及怎么快速解决~

错误原因分析

你遇到的bash: .docker/test2.json: No such file or directory错误,根源在于重定向符号>被本地Shell提前解析了。当你执行带>的ssh命令时,默认情况下,本地Shell会把>当成本地的输出重定向,尝试在你的本地机器创建.docker/test2.json文件,但本地可能没有这个目录,所以就报错了——而不是在远程服务器上执行这个重定向操作。

解决方案

方案1:修复原命令的重定向问题

把整个要在远程执行的命令用单引号包裹起来,这样所有Shell特殊字符(包括>和&&)都会完整传递到远程服务器的Shell中执行,不会被本地提前处理。修改后的命令如下:

ssh <test-server> 'jq '.key3 = "Value3"' .docker/test.json > .docker/test2.json && mv .docker/test2.json .docker/test.json'

记得把<test-server>替换成你实际的服务器地址或别名。

方案2:用jq的原地修改功能更简洁

jq自带了--in-place(简写-i)参数,可以直接原地修改原JSON文件,不需要创建临时文件再替换,既减少了步骤,也避免了临时文件相关的问题。命令如下:

ssh <test-server> 'jq -i '.key3 = "Value3"' .docker/test.json'

执行后,远程服务器上的.docker/test.json会直接更新为包含"key3": "Value3"的新内容,一步到位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:52:42