/bin/ls 输出与联机帮助页不匹配

Dav*_*ger 6 command-line ls

ls 手册页说:

List  information  about  the FILEs (the current directory by
default).  Sort entries alphabetically if none of -cftuvSUX nor --sort
is specified.
Run Code Online (Sandbox Code Playgroud)

-a, --all    do not ignore entries starting with .
Run Code Online (Sandbox Code Playgroud)

-1     list one file per line.
Run Code Online (Sandbox Code Playgroud)

/bin/ls -a1
Run Code Online (Sandbox Code Playgroud)

按文件名的字母顺序列出条目并带有任何前导 .删除,这不是按字母顺序排列的。

sort命令执行相同的操作。

有什么方法可以ls正常工作(.首先使用文件 - 这也不是字母顺序)?

ste*_*ver 11

顺序由您的语言环境的整理顺序决定。

前任。在我的默认语言环境中(即en_CA.UTF-8

$ ls -A1
a
.b
c
Run Code Online (Sandbox Code Playgroud)

而在C当地

$ LC_COLLATE=C ls -A1
.b
a
c
Run Code Online (Sandbox Code Playgroud)

(我用-A而不是-a消除...目录)。


获得所需顺序的另一种方法可能是使用-v(version sort) 选项,如将隐藏文件和目录与 ls 分组中所建议的那样- 尽管这并不是它真正的用途:

  -v     natural sort of (version) numbers within text
Run Code Online (Sandbox Code Playgroud)

由于ls几乎可以肯定已经在您的.bashrc文件中设置了别名,您可以简单地修改那里的别名以包含-v.