fme*_*ier 7 xubuntu command-line locale ls
我在文件和文件夹名称的开头使用下划线将它们标记为“特殊”。但这种排序对于 Linux 下的大多数程序都不起作用。我尝试了LC_COLLATE=C ls
其他语言环境,但结果很奇怪。假设我有这些文件夹:
2
A
_F
G
K
S
x4
Run Code Online (Sandbox Code Playgroud)
这是 的排序顺序ls
。当我使用时LC_COLLATE=C ls
,我有这个:
2
A
G
K
S
_F
x4
Run Code Online (Sandbox Code Playgroud)
我在 Xubuntu 18.04 下使用 2 台机器上的 xfce-terminal-emulator 进行此操作。
这里有什么问题吗?
--sort=version
您可以使用或-v
相当于(自然版本排序)对以下划线开头的文件进行排序sort -V
(这对于使用数字对文件进行排序最有用)。
$ ls -v1\n2\nA\nG\nK\nS\nx4\n_F\n
Run Code Online (Sandbox Code Playgroud)\n\n有关版本排序的详细信息在info ls
...请注意:
\xe2\x80\x98LC_COLLATE\xe2\x80\x99 is ignored, which means \xe2\x80\x98ls -v\xe2\x80\x99 and \xe2\x80\x98sort -V\xe2\x80\x99 will\n sort non-numeric prefixes as if the \xe2\x80\x98LC_COLLATE\xe2\x80\x99 locale category\n was set to \xe2\x80\x98C\xe2\x80\x99.\n
Run Code Online (Sandbox Code Playgroud)\n\n也许这足以满足您的目的。
\n@Zanna 的答案提供了一种解决方案。另一个解决方案是这样的:
$ ls -lfr -1 _* [!_]*
_F
2
A
G
K
S
x4
Run Code Online (Sandbox Code Playgroud)