我可以使用cat
读取文件,使用nano
对其进行更改,但由于某种原因,jq
存在权限问题。
msp@coolpad:~/projects/lol$ jq .name lol.json
jq: error: Could not open file lol.json: Permission denied
在检查权限,这是我得到的:
msp@coolpad:~/projects/lol$ ls -l
total 4
-rw-rw-r-- 1 msp msp 0 Sep 27 04:04 lol-domains.txt
-rwxrwxrwx 1 msp msp 593 Sep 27 04:38 lol.json
正如你所看到的,我试着给它777
权限,仍然显示Permission denied
。我知道这不是一个好主意设置777
权限,我完全打算将其更改为664
一旦问题得到解决。
更新 1:我已经尝试从snap
重新安装jq
,但仍然不能解决问题。
cat lol.json
msp@coolpad:~$ cat lol.json
{"name":"lol"}
Update 3:Output ofecho '{"name":"lol"}' | jq.name
msp@coolpad:~$ echo '{"name":"lol"}' | jq .name
"lol"
更新 4:在评论中弹出一个解决方法:
cat lol.json | jq.name
您通过 Ubuntu 的snap
安装了jq
。卸载它,然后通过apt
重新安装它:
sudo snap remove jq
sudo apt install jq
Snap 包有“confinement”,要么是“strict”,要么是“classic”,本例中jq
被打包为“strict”,意味着它有自己的/tmp/snap.jq/
目录,无法读取 system/tmp
目录和一堆其他目录。想要使用“classic confinition”的包必须经过 Snapcraft
只是永远不要安装命令行工具与snap
,至少没有--classic
。这个错误is intended behavior,他们不会改变它。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(10条)