在扩展的模式匹配运算符中包含路径部分。

问题描述 投票:1回答:1

给出以下目录结构,其中所有叶子都是文件。

a
├── b
│   ├── d
│   │   └── f
│   └── e
│       └── g
└── c
    ├── d
    │   └── h
    └── e
        └── i

下面的命令列出了文件 fh

$ ls a/@(b|c)/d/.

但以下内容无法列出 fi

$ ls a/@(b/d|c/e)
ls: cannot access 'a/@(b/d|c/e)': No such file or directory

很明显,我不能把斜线写在。pattern-list. 我的问题是一个,但也许把它分成几块更好。

  • 为什么?
  • 有没有什么内在的原因,为什么这样做是不可能的?
  • 如何用oneliner获得同样的效果?
bash path pattern-matching glob
1个回答
2
投票

我的直觉告诉我 文件名扩展 能产生 文件名埃米斯但不 路径名字。

在这种情况下,您可以使用 支架伸缩 虽然。

ls a/{b/d,c/e}
© www.soinside.com 2019 - 2024. All rights reserved.