一路上我搞砸了ls命令,现在我在运行时得到了这个命令
$ ls -AhHl --color=auto
-rwxr-xr-x 1 clang clang 640 Mar 1 02:46 apple-touch-icon-precomposed.png
-rwxr-xr-x 1 clang clang 784 Jul 12 02:54 crossdomain.xml
-rwxr-xr-x 1 clang clang 1.2K Mar 1 02:46 favicon.ico
drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git
-rw-r--r-- 1 clang clang 17 Feb 29 19:48 .gitignore
-rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt
我该怎么做,使ls忽略了点文件,而是按首字母排序?
输出locale
:
$ locale
LANG=
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
answer️这个答案有点过时了。请查看其他答案,尤其是使用别名或的
ls -v
答案。
尝试添加
export LC_COLLATE="C"
在您的dotfile中,或将LC_ALL
分配更改为:
export LC_ALL="C"
这控制了字符级排序的工作方式—虽然默认设置是内联对点文件进行排序,但这将使sort
列表点文件排在第一位。
但是,请注意,这将基本上停止所有支持区域设置的实用程序对您的实际区域设置的支持。
更进一步,引用GNU Coreutils手册(重点是我的):
如果您使用非POSIX语言环境(例如,通过设置
LC_ALL
为en_US
),则sort可能会产生与您习惯的输出排序不同的输出。在这种情况下,请将
LC_ALL
环境变量设置为C
。请注意,设置仅LC_COLLATE
存在两个问题。首先,如果LC_ALL
也设置无效。其次,如果LC_CTYPE
(或LANG
,如果LC_CTYPE
未设置)设置为不兼容的值,则它具有未定义的行为。例如,如果LC_CTYPE
为isja_JP.PCK
,LC_COLLATE
则得到未定义的行为en_US.UTF-8
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句