Permission denied to a file in ~/.cache directory

When I set an output file in the home directory, the following curl command works. But when I use ~/.cache/mydir, it returns "Permission error".

$ ls -al ~/.cache/tera
drwxrwxr-x  2 shinichi shinichi 4096 Jul 28 09:04 .
drwx------ 16 shinichi shinichi 4096 Jul 27 20:52 ..
-rw-rw-r--  1 shinichi shinichi    0 Jul 28 09:04 radio_searches.json


$ curl -X POST -d tag=smooth http://all.api.radio-browser.info/json/stations/search -o $HOME/.cache/tera/radio_searches.json
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0Warning: Failed to create the file 
Warning: /home/shinichi/.cache/tera/radio_searches.json: Permission denied
100    10    0     0  100    10      0      1  0:00:10  0:00:05  0:00:05     2
curl: (23) Failure writing output to destination

Why I can output to a file in the home directory, but not in the ~/.cache/mydir.


Solution 1:

I use the Snap when I installed curl.

The Snap ‘home’ interface permits access only to non-hidden files and directories in a user’s /home.

sudo snap remove gh
sudo rm -r ~/snap/gh

I used apt to install curl and it is working now.

sudo apt install curl