bash 通配符行为记录在哪里?
我知道我可以执行以下操作:
ls /dir/*/subdir/file
列出任何匹配目录中的任何匹配文件。这只是普通的通配符吗?感觉它比以下用法更高级:
ls /dir/subdir/file*
我认为它是“分支/搜索全局”。如果它与常规的通配符不同,它的真实名称是什么?它的行为记录在哪里?
I know I can do the following:
ls /dir/*/subdir/file
to list any matching files in any matching directories. Is this just regular globbing? It feels like it is more advanced than the following usage:
ls /dir/subdir/file*
I think of it as "branching/searching glob". If it is different to regular globbing, what is its real name and where is its behaviour documented?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
man bash
搜索
路径名扩展
man bash
search for
Pathname Expansion
bash 文档中这两种形式之间没有特别的区别;它们都在 文件名扩展 和 模式匹配。
There's no particular distinction between these two forms in the bash documentation; they're both described under Filename Expansion and Pattern Matching.
它位于 bash 手册页的模式匹配部分。
It's on the bash man page, in the section on Pattern Matching.
如果您想要更便携这里是 POSIX 规范 。
And if you want to be more portable here are the POSIX specs.