首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash Bug?不能使用negate extglob !(*/)来过滤掉目录吗?

Bash Bug?不能使用negate extglob !(*/)来过滤掉目录吗?
EN

Stack Overflow用户
提问于 2012-01-02 08:07:45
回答 1查看 557关注 0票数 3

如果glob */只匹配目录,那么逻辑上!(*/)应该匹配非目录;但这不起作用。这是一个bug,还是我漏掉了什么?这在任何shell上都能工作吗?

测试1以证明*/工作正常

代码语言:javascript
复制
$ cd /tmp; ls -ld */
drwxr-xr-x  2 seand users 4096 Jan  1 15:59 test1//
drwxr-xr-x  2 seand users 4096 Jan  1 15:59 test2//
drwxr-xr-x  2 seand users 4096 Jan  1 15:59 test3//

测试2以显示!(*/)的潜在错误

代码语言:javascript
复制
$ cd /tmp; shopt -s extglob; ls -ld !(*/)
/bin/ls: cannot access !(*/): No such file or directory
EN

回答 1

Stack Overflow用户

发布于 2012-01-05 08:13:36

具体问题的答案已经给出了;我不确定您是否真的想要另一个解决方案,或者您只是对分析行为感兴趣,但是列出当前文件夹中所有非目录的一种方法是使用find:

代码语言:javascript
复制
find . ! -type d -maxdepth 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8696462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档