告诉`ls`按常规ASCII码排序,而不是“智能”

我有几个文件,我会像这样对它们进行排序:

 a _b c 

但我想拥有

 _b a c 

我怎样才能做到这一点?

作为一次性命令,您可以这样做:

LC_COLLATE=C ls

或者您可以将export LC_COLLATE="C"添加到.bashrc中以使其成为永久性(可能在其他地方排序有意外结果)。

有关Ubuntu论坛的更多信息。

如果没有内置的方法来执行此操作,您可以使用简单的替换sort

 #!/usr/bin/env python import sys for i in sorted(sys.stdin): sys.stdout.write(i) 

例如,将其保存在/bin/pysort并使其可执行( sudo cp whatever.py /bin/pysortsudo chmod a+x /bin/pysort ),并将其作为ls | pysort运行ls | pysort ls | pysort

 stefano@lenovo:~/t$ ls | pysort _b a c 

ls | sort ls | sort不完全符合你的需要吗?