首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法打开文件lol.json:权限被拒绝使用Jq?

无法打开文件lol.json:权限被拒绝使用Jq?
EN

Stack Overflow用户
提问于 2019-09-27 04:43:14
回答 1查看 7K关注 0票数 11

我在这里正面临着某种许可问题。我能够使用cat读取文件,使用nano对其进行更改,但由于某种原因,jq存在权限问题。以下是我所面临的问题:

代码语言:javascript
复制
msp@coolpad:~/projects/lol$ jq .name lol.json
jq: error: Could not open file lol.json: Permission denied

在检查权限时,我得到的是:

代码语言:javascript
复制
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,但仍然没有解决问题。

更新2:cat lol.json输出

代码语言:javascript
复制
msp@coolpad:~$ cat lol.json
{"name":"lol"}

更新3:echo '{"name":"lol"}' | jq .name输出

代码语言:javascript
复制
msp@coolpad:~$ echo '{"name":"lol"}' | jq .name
"lol"

更新4:注释中弹出的一个解决方案:

cat lol.json | jq .name

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-06 14:38:41

您通过Ubuntu的snap安装了snap。卸载它并通过apt重新安装它。

代码语言:javascript
复制
sudo snap remove jq
sudo apt install jq

Snap包有"禁闭“,它要么是”严格的“,要么是”经典的“。在本例中,jq被打包为“严格”,这意味着它有自己的/tmp/snap.jq/目录,不能读取系统/tmp目录和一堆其他目录。想要使用“经典限制”的包必须由负责Snapcraft的人员手动批准,并且在安装它们时必须通过--classic,例如:sudo snap install <package_name> --classic

只是不要用snap安装命令行工具,至少不要安装--classic。这个错误是有意的行为,他们不会改变它。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58128001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档