你可以排序的一个 ls 清单的名字?

有帮助吗?

解决方案

我LS排序由默认名称。什么是你看见了什么?

man ls状态:

List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.

其他提示

对于一些简单的,你可以结合 LS 排序。对于只是一个文件名列表:点击 的 LS -1 |排序

要以相反的顺序对它们进行排序:结果 的 LS -1 |排序-r

ls coreutils执行的区域识别排序缺省,并且因此可以产生在一些情况下令人惊讶的结果(例如,%foobar quuxLANG=en_US之间进行排序)。如果你想要一个ASCIIbetical排序,使用

LANG=C ls

中的* 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

此外,如果要忽略上/下的情况下,添加到--ignore-case sort命令。

注意: “一” 来AFTER “Z”:

$触摸A.TXT aa.txt文件Z.txt

$ LS

A.TXT Z.txt aa.txt文件

文件只由数字字符为不同的可以在这个数在它是由隔板之前的条件进行排序。

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

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

示例:

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

从人页(对于bash LS):

  

按字母排序,如果没有-cftuSUX也不--sort的。

检查.bashrc文件的别名。

ls 实用应该符合IEEE标准1003.1-2001年(POSIX.1)其中指出:

22027:它应当排序的目录和非目录的操作数分别根据核对序列,在当前区域设置。

26027:通过默认的,格式是不确定的,但是 输出应按字母顺序排列 通过符号名称:

  • 图书馆或对象名称,如果一个被指定
  • 符号的名字
  • 类型的符号
  • 价值的象征
  • 大小相关的符号,如果适用的话

LS为该目的-X工作的,如果你有别名ls以更有用的默认值。

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 --
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top