我在文件和文件夹名称的开头使用下划线来标记它们为“特殊”的。但这种排序对 Linux 下的大多数程序都不起作用。我尝试了LC_COLLATE=C ls
其他语言环境,但结果有些奇怪。假设我有这些文件夹:
2
A
_F
G
K
S
x4
这是 的排序顺序ls
。当我使用 时LC_COLLATE=C ls
,我有这样的结果:
2
A
G
K
S
_F
x4
我在 Xubuntu 18.04 下在两台机器上使用 xfce-terminal-emulator 实现了这个功能。
这里有什么问题?
答案1
--sort=version
您可以使用或对以下划线开头的文件进行排序,-v
这相当于sort -V
(自然版本排序)(这对于使用数字对文件进行排序最有用)。
$ ls -v1
2
A
G
K
S
x4
_F
版本排序的详细信息请参见info ls
...请注意:
‘LC_COLLATE’ is ignored, which means ‘ls -v’ and ‘sort -V’ will
sort non-numeric prefixes as if the ‘LC_COLLATE’ locale category
was set to ‘C’.
也许这对于您的目的来说就足够了。
答案2
@Zanna 的回答提供了一个解决方案。另一个解决方案是:
$ ls -lfr -1 _* [!_]*
_F
2
A
G
K
S
x4