首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用通配符前后的通配符“查找”?

如何使用通配符前后的通配符“查找”?
EN

Unix & Linux用户
提问于 2022-11-22 18:37:51
回答 1查看 153关注 0票数 1

我试图用包含字符串的名称删除目录中的所有文件(递归)。最后,我想这样做:

find . -type f -name '*.m3d*' -delete

但在运行delete之前,我测试了是否找到了以下所有文件:

find . -type f -name '*.m3d*',但这会返回一个不完整的列表:

代码语言:javascript
复制
./Result/h-field (f=15)_1,1.m3d  
./Result/e-field (f=15)_1,1.m3d
./Result/h-field (f=15)_2,1.m3d
./Result/e-field (f=15)_2,1.m3d  

完整的列表如下所示:

find . | grep m3d

代码语言:javascript
复制
./Result/e-field (f=15)_1,1_m3d.rex
./Result/h-field (f=15)_1,1.m3d
./Result/e-field (f=15)_1,1.m3d
./Result/h-field (f=15)_2,1_m3d.rex
./Result/e-field (f=15)_2,1_m3d.rex
./Result/h-field (f=15)_2,1.m3d
./Result/e-field (f=15)_2,1.m3d  

我阅读了find的手册页,它说在字符串的末尾不能使用通配符,就像我在最初的尝试中尝试的那样。删除所有包含我的字符串但不一定在名称末尾的文件的好方法是什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-11-22 18:59:14

我不确定您目前使用的是哪个版本的find,但我没有找到任何引用,说明通配符在字符串的末尾不工作。

您的问题似乎是文件是如何命名的。搜索中没有显示的文件与*.m3d*不匹配,因为它们在字符串m3d之前没有一个点(.),而是一个下划线(_),因此find不会将它们与给定的条件匹配。

命令find . -type f -name '*m3d*'应该能够从给定的示例中找到所有这些文件。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/725932

复制
相关文章

相似问题

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