我可以 `ls` 目录中“1”、“2”、...、“9”、“10”、“11”、...、“20”、“21”、... 中的所有文件吗?

我可以 `ls` 目录中“1”、“2”、...、“9”、“10”、“11”、...、“20”、“21”、... 中的所有文件吗?

我有一个目录,其中包含名为“1”、“2”、...、“9”、“10”、“11”、...、“20”、“21”、... 的文件。

我可以按照“1”、“2”、...、“9”、“10”、“11”、...、“20”、“21”、... 的顺序列出它们吗?

我努力了ls -ls。它不会以这种方式列出文件,而是“1”,“10”,“11”,...,“19”,“2”,“20”,“21”,...我猜这样的功能有时会很有帮助。

答案1

对于 GNU ls(大多数 Linux 发行版上都有),您可以在页面中使用ls -v, where -v,man

 -v     natural sort of (version) numbers within text

答案2

GNUls -v已经被提及,但对于其他命令,如果您的 shell 是zsh,您可以影响通配符使用通配符扩展的顺序。

例如:

printf '%s\n' *(om)

将列出按修改时间排序的文件m(从最新到最旧),*(Om)以反转排序顺序(从最旧到最新)。

*(n)将对文件进行数字排序。因此,如果您ls不是 GNU ls,您仍然可以这样做:

ls -fdl -- *(n)

获取按数字排序的列表。

相关内容