Bash:无法创建具有 unicode 字符的目录

标签 bash git fonts

我正在尝试检查一个 git repo ( this ),它需要创建一个包含 unicode 字符的文件夹(名称是 uni¢𐍈d€),其中缺少的字符(我不知道如何呈现它这里)是 Hwair gothic character .在我的工作站上,它工作正常,但是当我尝试在服务器(RedHatEnterpriseServer,我没有 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 ,但这没有用。

在我的工作站和服务器上到处搜索 hwair 和 grep,我发现“hwair”字符应该是 Code2001 字体,我认为 em> 应该安装在两个系统上,因为两个系统都有文件 /etc/fonts/conf.d/69-unifont.conf ,它们是相同的,并且包含行

<family>Code2001</family> <!-- plane1 and beyond -->

我从来没有真正处理过这么精细的字体,所以我不确定这是否可以通过在本地添加一些字体来解决(也许系统会禁止此类特定字体)。我什至不知道是否将字体文件复制到 ~/.fonts/正在运行 fc-cache足够了,或者还有更多内容。

所以我想问题是:

  1. 问题是否与服务器上缺少字体有关?
  2. 如果是,我该如何添加缺少的字体?
  3. 如果不是,是否与我无法修复的问题有关(可能需要 sudo 权限)?

编辑:无法创建的文件夹是 git 存储库的一部分。克隆 repo 时(或任何时候您尝试 checkout master 分支时)会出现错误。我认为权限没有问题,否则它也会在我的工作站上失败(“主机”文件夹的权限是相同的)。另外,尝试做 mkdir $( printf 'uni¢\xF0\x90\x8D\x88d€' )也不起作用。 bash 似乎确实正确地解释了 unicode 编码,因为在打印“无法创建...”时,文件夹的名称确实显示了 hwair 符号。

Edit2:如果您认为这个问题有一些缺陷,请添加评论,而不仅仅是投票结束。如果需要,我很乐意更改/编辑/改进。

最佳答案

我遇到了完全相同的问题!

似乎对于某些人来说——我不知道——原因是不可能有那个Hwair character在某些文件系统的文件名中为 that other guy已经提到了。

因此,作为解决方法,我建议您查看可用的文件系统,例如:

df -Th

然后例如使用指向使用 ext4 的文件系统的符号链接(symbolic link)。

仅供引用:它对我不起作用的文件系统是 nfs4 类型。

关于Bash:无法创建具有 unicode 字符的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49986512/

相关文章:

bash - 如何在bash中检查密码

linux - ftp mput 仅发送四个文件 - ubuntu

git - 非交互式 GIT 使用

GitHub 一直抛出 "Could not commit submodules"错误,我不明白这是为什么。有任何想法吗?

bash - 使用 sed 将文件中 for 循环中第 n 次出现的字符串替换为另一个字符串

git - Azure git,将 fork 存储库与主同步

Python Tkinter 字体选择器

css - Lucida grande 字体不够亮

c# - 在 Silverlight 中加载字形字体

linux - 如何在 shell 中执行 ssh 时更改文件权限