代码之家  ›  专栏  ›  技术社区  ›  TRomesh

从ls中排除特定的嵌套目录--忽略

  •  0
  • TRomesh  · 技术社区  · 6 年前

    目录列表如下所示

    app/frontend
    app/authservice
    app/mailservice
    ...............
    ...............
    

    我想列出所有目录内的应用程序目录除了 app/frontend 从根目录。

    我设法得到所需的输出使用 grep -v

    ls -d /app/packages/*/ | grep -v packages/frontend/
    

    但我想通过使用 --ignore 在ls命令中。

    1 回复  |  直到 6 年前
        1
  •  2
  •   John Kugelman Michael Hodel    6 年前

    ls --ignore 用于隐含的条目,例如列出目录的内容时没有 -d ,或在递归列表中 ls -R /app/packages/*/ . 重要的是,正是这个外壳扩展了 * 全球,不是 ls 长征 担心 frontend 目录是显式写出的。

    您可以使用shell特性来省略特定的目录。这个扩展的glob将列出除 前端

    ls -d /app/packages/!(frontend)/
    

    (在脚本中,您将需要 shopt -s extglob