我正在尝试签出一个git repo(this),它需要创建一个包含unicode字符(名称是uni d欧元)的文件夹,其中缺少的字符(我不知道如何在这里呈现)是Hwair gothic character。在我的工作站上,它工作得很好,但是当我尝试在服务器(redhaenterpriseserver,在那里我没有sudo功能)上执行它时,我会得到一个错误fatal: cannot create directory at 'python/ycm/tests/testdata/uni¢𐍈d€': Permission denied
另外,我试图手动创建文件夹,而hwair字符是唯一一个出现问题的字符,这意味着可以成功创建文件夹uni¢d€
。
两个系统上的LANG
变量都设置为en_US.UTF-8
。我试图找出我的工作站字体和服务器字体之间的区别。grepping'hwair',我在我的工作站上发现一个在服务器上丢失的字体,所以我复制了服务器上~/.fonts
中的字体文件夹,并运行了fc-cache
,但这不起作用。
google-ing-hwair和grepping在我的工作站和服务器上,我发现'hwair'字符应该是code2001字体,我认为应该安装在两个系统上,因为两个系统都有相同的文件/etc/fonts/conf.d/69-unifont.conf
,并且包含<family>Code2001</family> <!-- plane1 and beyond -->
我从来没有真正处理过这么好的字体,所以我不确定是否可以通过在本地添加一些字体来解决这个问题(也许系统会禁止这种特殊的字体)。我甚至不知道将字体文件复制到~/.fonts/
并运行fc-cache
是否足够,或者是否还有其他功能。
所以我想问题是:
问题是否与服务器上缺少字体有关?
如果是,如何添加丢失的字体?
如果没有,是否与我无法修复的问题有关(可能需要sudo权限)?
编辑:无法创建的文件夹是git存储库的一部分。克隆repo时(或尝试签出主分支时)出现错误。我认为权限没有问题,否则它也会在我的工作站上失败(“主机”文件夹的权限相同)。此外,尝试执行mkdir $( printf 'uni¢\xF0\x90\x8D\x88d€' )
也不起作用。bash似乎确实正确地解释了unicode编码,因为当打印“cannot create…”时,文件夹的名称确实显示了hwair符号。
编辑2:如果你认为这个问题有缺陷,请加上一条评论,而不仅仅是投票赞成结束。如果需要,我很乐意修改/编辑/改进。
最佳答案
我也有同样的问题!
似乎出于某种我不知道的原因,在某些文件系统上的文件名中不可能像前面提到的那样有Hwair character这个值。
因此,作为一种解决方法,我建议您查看可用的文件系统,例如:
df -Th
然后使用一个符号链接到使用ext4的文件系统。
仅供参考:对我来说不起作用的文件系统是nfs4类型的。