因此,和几乎所有人一样,在使用 Ubuntu 之前,我使用的是 Windows 机器,在 Windows 中我习惯的事情之一是使用下划线作为文件夹名称的第一个字符,作为某种特殊标记,以便它会在列表中首先出现,无论是在命令行还是文件资源管理器中。
例如,在我的电子书文件夹(在 Windows 中)中看起来像这样:
_read
Book1.pdf
Book2.pdf
_reading
Book3.pdf
Book4.pdf
Book5.pdf
但在 Ubuntu 的 Nautilus 中它看起来像这样:
Book4.pdf
Book5.pdf
_read
Book1.pdf
Book2.pdf
_reading
Book3.pdf
发生的情况是,它完全忽略了下划线,并将“_read”视为“read”,因此没有按照希望的那样将其列在第一位。
我尝试将环境变量 LC_COLLATE 设置为 C。这在某种程度上有帮助,因为它将下划线列在一起,但在末尾,而不是在开头。
谢谢。
答案1
由于您没有指定当前正在使用的区域设置,该解决方案假定您正在使用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=
影响文件排序顺序的变量称为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
再次运行该命令应该会反映此更改。
答案2
caja(我认为之前的 Nautilus 也是如此)在“偏好设置”中有一个选项,可以先对文件夹进行排序,然后再对文件进行排序。这有帮助吗?