gpt4 book ai didi

linux - 无法打开文件 lol.json : Permission denied using Jq?

转载 作者:行者123 更新时间:2023-12-02 09:37:57 37 4
gpt4 key购买 nike

我在这里面临某种许可问题。我可以使用 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一旦问题得到解决。 Anyhelp会appriciated。

更新 1:我试过重新安装 jq来自 snap但是,它仍然没有解决问题。

更新 2: cat lol.json 的输出
msp@coolpad:~$ cat lol.json
{"name":"lol"}


更新 3: echo '{"name":"lol"}' | jq .name 的输出
msp@coolpad:~$ echo '{"name":"lol"}' | jq .name
"lol"

更新 4:评论中出现的一种解决方法:
cat lol.json | jq .name

最佳答案

sudo snap remove jq
sudo apt install jq
您安装了 jq通过 Ubuntu 的 snap .
Snap 包有“ confinement”,它是“严格的”或“经典的”。在这种情况下 jq必须被打包为“严格”意味着它有自己的 /tmp/snap.jq/目录,无法读取系统 /tmp目录和一堆其他目录。想要使用“经典坐月子”的snap套餐,需要snap负责人手动审批,必须通过 --classic安装它们时,像这样: sudo snap install <package name> --classic .
无论如何,卸载 jq的snap版本并从 apt 重新安装它(以上两个命令)为我修复了权限错误。 jqapt是比 snap 中的版本更新的版本无论如何(至少在 Ubuntu 20.04 上截至 2020 年 7 月)。

在我看来,通过 snap 安装命令行工具是个错误,至少没有 --classic因为你会得到像上面这样的错误。这是预期行为,不太可能改变,因为 snap 的设计者不要认为软件告诉您存在的文件不存在有什么问题。请在 snapcraft 论坛上查看有关此问题的帖子: https://forum.snapcraft.io/t/jq-cant-read-some-files/17835

关于linux - 无法打开文件 lol.json : Permission denied using Jq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58128001/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com