今天在修补 tianheg/coding-interview-university 仓库的 Action 时,遇到一个问题:想把一个文件的内容输出到 issue 中,但是因为文件字符长度超过 65536 而报错。
{"resource":"Issue","code":"custom","field":"body","message":"body is too long (maximum is 65536 characters)"}
所以通过以下命令,把文件中超出 60000 的部分移除。
cat ./lychee/out.md | cut -c 1-60000 >> ./lychee/out.md
但是却不停地报错。
/home/runner/work/_temp/3f19c8f9-894d-4ef8-aef0-f78d9fe01db7.sh: line 1: ./lychee/out.md: Permission denied
一开始,我改了很多次那个移除命令,比如加个 sudo
,
permissions: write-all
。
后来,我想到可以加个 ls -al
试试看,结果听令我意外且惊喜。
> ls -al
total 188
drwxr-xr-x 6 runner docker 4096 May 1 03:30 .
drwxr-xr-x 3 runner docker 4096 May 1 03:29 ..
drwxr-xr-x 8 runner docker 4096 May 1 03:29 .git
drwxr-xr-x 3 runner docker 4096 May 1 03:29 .github
-rw-r--r-- 1 runner docker 222 May 1 03:29 .gitignore
-rw-r--r-- 1 runner docker 20130 May 1 03:29 LICENSE.txt
-rw-r--r-- 1 runner docker 132734 May 1 03:29 README.md
drwxr-xr-x 3 runner docker 4096 May 1 03:29 extras
drwxr-xr-x 2 root root 4096 May 1 03:30 lychee
-rw-r--r-- 1 runner docker 6951 May 1 03:29 programming-language-resources.md
不错,权限为 root,所以需要添加命令。
pwd
ls -al
sudo chown runner:docker -R ./lychee
ls -al
cat ./lychee/out.md | cut -c 1-60000 >> ./lychee/out.md
这样,这个问题就算解决了。
后记
cat ./lychee/out.md | cut -c 1-60000 >> ./lychee/out.md
似乎还保留了文件的原内容,如果想要覆盖源文件的内容需要把 >>
改为 >
。