我有一个目录,其中包含名为“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)
获取按数字排序的列表。