`ls M*` 显示子目录

`ls M*` displayes the subdirectory

我运行命令和接收结果为:

    $ ls M*
    ManagerGit
    $ ls m*
    ManagerGit

问题是目录 ManagerGit 不在当前目录中,
尝试命令:

    $ ls | grep -i 'manage'
    Manager

它是 dir Manage 的子目录

    tree -L 2
  ...
    ├── Manager
    │   └── ManagerGit
  ...

背后的机制是什么?

因为 shell 将 ls M* 扩展为 ls Manager - 即列出名为 Manager.

的目录的内容

ls不知道怎么过滤。我建议你这样做:

find . -depth 1 -name 'M*'

我总是发现 ls -d M* 写起来更快更容易(而不是 find ...),其中 -d 执行以下操作:

-d, --directory
    list directories themselves, not their contents