无法进入以重音符号命名的目录

无法进入以重音符号命名的目录

我在 CentOS 7 Droplet 上有以下文件夹。它们是通过 FTP 从法国操作系统添加的。

  • 事件 1
  • 事件 2
  • 事件 3

当我这样做时,重音字符(é)将被替换为问号ls

我无法cd进入这些文件夹。

我尝试了网上的几种建议,但没有成功。包括:

cd Evénement\ 1
cd "Evénement 1"
cd "Ev?nement 1" (copying the exact output from ls)
cd Ev\nement\ 1
cd Ev\énement\ 1
cd Ev\351énement\ 1 (because ls -b outputs them like that)

这是 的输出locale

LANG=en_CA.UTF-8
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=

在此先感谢您的帮助。

答案1

使用单引号和/或tab(自动完成),如下所示:

mbp:~ alexus$ mkdir 'Evénement'
mbp:~ alexus$ cd 'Evénement'
mbp:Evénement alexus$ pwd
/Users/alexus/Evénement
mbp:Evénement alexus$ cd ..
mbp:~ alexus$ cd Evénement/
mbp:Evénement alexus$ 

答案2

尝试cd "Ev*nement 1". cd "Ev?nement 1"(自己输入 ? 而不是从 shell 的输出中复制)也可能有效。我猜输出中的问号ls不是真正的问号,而是一个特殊字符,表示 shell 无法解码该字符。

您可以发布输出吗locale

答案3

我找到了解决这个问题的方法。我将实际终端程序 iTerm2 的字符编码从 Unicode (UTF-8) 更改为 Western (ISO Latin 1)。我通过修改连接到此服务器的配置文件来实现此目的,如下所示:

iTerm2 > 偏好设置 > 配置文件 > 配置文件 > 终端 > 字符编码

现在重音字符显示正确了,我可以轻松地进入它们。

再次感谢那些试图提供帮助的人。

相关内容