用下划线开头对文件和文件夹进行排序

用下划线开头对文件和文件夹进行排序

我在文件和文件夹名称的开头使用下划线来标​​记它们为“特殊”的。但这种排序对 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

相关内容