Linux ls 如何按自然顺序排序输出

同文件夹下有 1, 2, 11 这么三个文件,想按自然数顺序排序用 ls 输出。

默认情况下 ls -l

... 1
... 11
... 2

需要的结果是

... 1
... 2
... 11

试过用 sort -k9 结果跟不用一样,看过这两个命令的 man,没什么收获


update: sort -n 可以解决纯自然数文件名的问题,可是如果那些文件有其他字符的前缀时就不好用了。比如在有以上三个文件的目录中执行

for i in ls *; do mv $i a$i; done

这种时候应该肿么办呢?

阅读 10.2k
1 个回答

sort -k9 -n

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题