最后列出点目录的目录,然后是点文件

最后列出点目录的目录,然后是点文件

我知道这个ls选择--group-directories-first,但这并不是我想要实现的目标。

输出应该是:(按名称 ASC 排序)

  • 目录
  • 隐藏目录
  • 隐藏文件

答案1

使用 GNU ls-U告诉ls不对文件列表进行排序的选项是 GNU 扩展):

ls -lUd -- *(/) .*(/) .*(^/)

但问题是,如果这些 glob 中的任何一个不匹配,该命令将被取消,所以你可以这样做:

myls() (
  setopt cshnullglob
  ls -lUd -- *(/) .*(/) .*(^/)
)

这模拟了这样csh一种行为:只要命令中至少有一个 glob 扩展为某项,则不匹配的 glob 就会扩展为空。

请注意,zshglob 永远不会扩展...,因此这两个永远不会被包含在内。

相关内容