shell 正则匹配问题 反向匹配 负匹配

Daniel_Cao_ 2008-11-26 03:37:59
我想实现这样一个查找功能:
从当前文档中查找文件和文件夹,但不要查找patha的路径。

比如当前路径下

file: a.txt
file: b.txt
dir: patha
dir: pathb

我想命令应该是: find . -name "*" -p 不匹配patha -exec ls -l {} \;

这个问题的关键也就是如何写一个“负匹配”正则表达式来表示: 不匹配 patha(或者说是匹配 不含 patha的字符串)

在网上了找好久,都没有得到正解。

请牛人不吝赐教,多谢多谢:)
...全文
529 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudflashes 2008-12-07
  • 打赏
  • 举报
回复
find . -name * -exec ls -l {} \; |grep -v patha
spiderww 2008-11-26
  • 打赏
  • 举报
回复
参见《LINUX与UNIX SHELL编程指南》
spiderww 2008-11-26
  • 打赏
  • 举报
回复
忽略某个目录使用的是-prune选项:
如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,
那么可以使用- p r u n e选项来指出需要忽略的目录。在使用- p r u n e选项时要当心,因为如果你同
时使用了- d e p t h选项,那么- p r u n e选项就会被f i n d命令忽略。
如果希望在/ a p p s目录下查找文件,但不希望在/ a p p s / b i n目录下查找,可以用:
$ find /apps -name "/apps/bin" -prune -o -print

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧