如何首先列出带有下划线的文件夹?

如何首先列出带有下划线的文件夹?

因此,和几乎所有人一样,在使用 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++ Altt输入:

update-locale LC_COLLATE=C

重要提示:您需要退出系统然后重新登录以使更改生效

再次运行该locale命令,应该会显示LC_COLLATE变量已成功更改。ls -l再次运行该命令应该会反映此更改。

答案2

caja(我认为之前的 Nautilus 也是如此)在“偏好设置”中有一个选项,可以先对文件夹进行排序,然后再对文件进行排序。这有帮助吗?

相关内容