`ls M *`显示子目录

时间:2018-04-02 09:46:30

标签: bash ls subdirectory glob

我运行命令并收到结果:

    $ ls M*
    ManagerGit
    $ ls m*
    ManagerGit

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

    $ ls | grep -i 'manage'
    Manager

它是dir Manage

的子目录
    tree -L 2
  ...
    ├── Manager
    │   └── ManagerGit
  ...

背后的机制是什么?

2 个答案:

答案 0 :(得分:3)

因为shell将ls M*扩展为ls Manager - 即列出名为Manager的目录的内容。

ls不知道如何过滤。我建议你做这样的事情:

find . -depth 1 -name 'M*'

答案 1 :(得分:1)

我总是发现ls -d M*更快更容易编写(而不是find ...-d执行以下操作:

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