所以几乎每个人,在使用 Ubuntu 之前,我使用的是 Windows 机器,我在 Windows 中习惯的一件事是使用下划线作为文件夹名称的第一个字符作为某种特殊标记,以便它在命令行和文件资源管理器中首先出现在列表中。
例如,在我的 eBooks 文件夹(在 Windows 中)看起来像这样:
_read
Book1.pdf
Book2.pdf
_reading
Book3.pdf
Book4.pdf
Book5.pdf
Run Code Online (Sandbox Code Playgroud)
但在 Ubuntu 的 Nautilus 中,它看起来像这样:
Book4.pdf
Book5.pdf
_read
Book1.pdf
Book2.pdf
_reading
Book3.pdf
Run Code Online (Sandbox Code Playgroud)
发生的事情是它完全忽略了下划线,并将“_read”视为“read”,因此没有按照需要首先将其列出。
我尝试将环境变量 LC_COLLATE 设置为 C。这在某种程度上有所帮助,因为它将下划线列出在一起,但在最后,而不是在开头。
谢谢。
Kev*_*wen 20
由于您尚未指定当前使用的语言环境,因此此解决方案假定您使用的en_US.UTF-8
是默认语言环境。
您可以通过运行以下命令检查此locale
命令行(Ctrl+ Alt+ t)。
例如:
~ $ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
影响文件排序顺序的变量称为LC_COLLATE。
根据Ubuntu 帮助页面,LC_COLLATE 变量确定“字符串(文件名...)如何按字母顺序排序。在此处使用“C”或“POSIX”语言环境会导致类似 strcmp() 的排序顺序,这可能是优于特定语言的语言环境。”
排序顺序需要从 更改LC_COLLATE="en_US.UTF-8"
为LC_COLLATE=C
。
在命令行(Ctrl+ Alt+ t),输入:
update-locale LC_COLLATE=C
重要提示:您需要退出系统,然后重新登录才能使更改生效。
locale
再次运行该命令,它应该显示LC_COLLATE
变量已成功更改。ls -l
再次运行该命令应反映此更改。