Unix';s';ls';按名称排序

Unix';s';ls';按名称排序,unix,ls,Unix,Ls,您能按名称对列表排序吗?默认情况下,我的ls按名称排序。你在看什么 man ls声明: 列出有关文件的信息(默认情况下为当前目录)。如果未指定-cftuvSUX或-Sort,则按字母顺序对条目进行排序。:来自手册页(对于bash ls): 如果没有-cftuSUX或--Sort,则按字母顺序对条目进行排序 对于一些简单的操作,您可以将ls与排序相结合。仅查看文件名列表: ls-1 |排序 按相反顺序排序: ls-1 | sort-r注意:“a”在“Z”之后: $touch A.txt aa.tx

您能按名称对列表排序吗?

默认情况下,我的ls按名称排序。你在看什么

man ls
声明:

列出有关文件的信息(默认情况下为当前目录)。如果未指定-cftuvSUX或-Sort,则按字母顺序对条目进行排序。

来自手册页(对于bash ls):

如果没有-cftuSUX或--Sort,则按字母顺序对条目进行排序


对于一些简单的操作,您可以将ls排序相结合。仅查看文件名列表:
ls-1 |排序

按相反顺序排序:
ls-1 | sort-r注意:“a”在“Z”之后:

$touch A.txt aa.txt Z.txt

$ls


A.txt Z.txt aa.txt

检查
.bashrc
文件中的别名。

nix工具的妙处在于您可以将它们组合在一起:

ls -l | sort -k9,9
ls-l
的输出如下所示

-rw-rw-r-- 1 luckydonald luckydonald  532 Feb 21  2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
因此,使用
9,9
可以将列
9
排序到列
9
,作为文件名。您必须提供停止的位置,在本例中是同一列。列以
1
开头


此外,如果要忽略大写/小写,请在sort命令中添加
--ignore case
coreutils
中的
ls
默认情况下执行区域设置感知的排序,因此在某些情况下可能会产生意外结果(例如,
%foo
将在
LANG=en_US
中的
bar
quux
之间进行排序)。如果要进行电子排序,请使用

LANG=C ls

ls
实用程序应符合IEEE Std 1003.1-2001(),其中规定:

22027:应根据当前区域设置中的排序顺序,分别对目录操作数和非目录操作数进行排序

26027:默认情况下,格式未指定,但输出应按字母顺序排列,按符号名称排序:

  • 库或对象名称(如果有)−指定了一个
  • 符号名
  • 符号类型
  • 符号的价值
  • 与符号关联的尺寸(如适用)

只有数字字符串不同的文件可以在此数字上排序,前提是前面有分隔符

在这种情况下,可以使用以下语法:

ls -x1 file | sort -t'<char>' -n -k2

如果您将ls别名设置为更有用的默认值,则ls-X可用于此目的。

您可以尝试:

ls-lru


-u和-lt:sort by and show,access time;

我使用下面的命令获得了按名称排序的目录内容:



ls-h

没有“bash ls”。请选择“哪个ls”@诺伯特:你是对的,但是
哪一个ls
会成功,即使bash有一个内置ls。相反,在bash中执行
内置ls
,并得到一个错误。@Norbert:
哪一个总是返回一个路径。使用
键入ls
来确定shell认为
ls
是什么(内置的、函数的、可执行的)。如果它没有按名称进行排序而没有任何参数,您可能希望检查ls是否已被别名化为其他内容,或者只需使用完整路径调用它,这样将消除任何存在的别名。gnu-coreutils ls ls ls默认进行排序。您使用的是什么系统(正如其他人所问的)您确定要按名称而不是按类型进行排序吗(即,先目录,然后文件)??大写字母在小写字母之前,因此文件Z在文件a之前。我如何解决这个问题?手册页上写着“按字典顺序单独排序”。文件按照第一个字符进行排序:数字[0..9]和大写字符[a..Z]以及小写字符[a..Z]这并不总是正确的。我不知道是什么情况使这不正确,但在我运行Ubuntu 12.04的机器上,ls的输出是按字母顺序排序的(忽略大小写)。好主意!看起来它是根据ASCII码排序的。。大写字母后面跟着小写。。我注意到我的MacOS会先排序数字,然后是大写字母,然后是下划线,然后是小写字母。有趣的是,它们不区分大小写。另一方面,我的Debian区分大小写,但它会按大小写排序敏感地,除非出现平局,否则小写字母赢!示例:ABA.txt ABb.txt aBC.txt aBC.txt aBC.txt aBC.txt我也在MAC上。我对a、Z、a、Z类型的排序感到失望。我来这里是因为我更喜欢a、a、Z、a。谢谢你的提示。我将在这里尝试
正常的
解决方案。有没有办法对文件进行排序:
ls |rt-n
1.1.1;1.1.2;1.1.3;2.10.1;2.10.15;2.10.2;2.10.20;2.10.21;2.1.1;2.1.10;2.1.15;2.1.2;2.1.3;2.1.4;10.1.1;10.1;10.1;11.0.1;11.0.2;11.0.20;11.0.21;11.0.22;正如你可以看到的那样,在2.10.15.2.2.2.1.10.2.2.1.1.2.1.1.1.2开发之前,android Pidian对一些设备进行自动排序并不是很有帮助的,它只是对android Pidiaon进行了自动排序问题是,它看起来像是对软链接进行排序,但并没有对文件进行排序。出于某种原因,在Mac上,第二个命令似乎可以缩短为
ls-1r
。@BBK sort-V将按版本号进行排序,所以您可以得到..2.10.2;2.10.15;。来自man sort..--sort=WORD将根据WORD进行排序:general numeric-g,human numeric-h,month-M,numeric-n,random-R,version-V
ls
如果指定了
-c1
则不排序:有没有办法让它这样做?(
--sort=name
似乎不起作用)那不是真的。有了
ls-la
,我明白了:
.bashrc-can-.config-Downloads-.local-tmp
,排序名称应该是:
.bashrc-.config-.local-Downloads-can-tmp
我说100.jpg在10.jpg之前。如果“0”在“b”之前,我想是有道理的。但我还是不直观地看到“m”在“b”之前.困惑。等等,大写是否重要?可以键入
alias
来检查所有当前别名。
LANG
ILF影响排序行为,这篇文章对我帮助很大!这项工作
ls -1 TRA*log | sort -t'_' -n -k2

TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
In Debian Jessie, this works nice:

ls -lah --group-directories-first

# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha

# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --