ls
手册页说:
List information about the FILEs (the current directory by
default). Sort entries alphabetically if none of -cftuvSUX nor --sort
is specified.
和
-a, --all do not ignore entries starting with .
和
-1 list one file per line.
但
/bin/ls -a1
按文件名的字母顺序列出条目,并.
删除所有前导字符,但不按字母顺序排列。
该sort
命令的作用相同。
有没有什么办法可以以ls
正常方式工作(.
首先使用文件 - 也不是按字母顺序排列的)?
答案1
该顺序由您所在地区的排序顺序决定。
例如在我的默认语言环境中(即en_CA.UTF-8
)
$ ls -A1
a
.b
c
而在C
本地
$ LC_COLLATE=C ls -A1
.b
a
c
(我使用-A
而不是-a
来消除.
和..
目录)。
获得所需顺序的另一种方法可能是使用-v
(版本排序)选项,如使用 ls 对隐藏文件和目录进行分组- 尽管这并非它的真正目的:
-v natural sort of (version) numbers within text
由于ls
您的文件内部几乎肯定已经有别名.bashrc
,因此您可以简单地修改那里的别名以包含-v
。