首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在globbing中dir/*,dir/**,dir/**/*,dir/**/*.*有什么区别?

在globbing中dir/*,dir/**,dir/**/*,dir/**/*.*有什么区别?
EN

Stack Overflow用户
提问于 2014-11-09 12:16:40
回答 1查看 211关注 0票数 2

想象一下下面的目录结构:

代码语言:javascript
复制
web/
  sub1/
    1.js
  3.js

当我使用'del‘节点模块删除文件或目录时,dir/* , dir/**, dir/**/*, dir/**/*.*的行为是不同的。

代码语言:javascript
复制
web/*

del('web/*','!web/sub1/1.js')

->删除web/下的所有内容,同时删除web/sub1/1.js

del('web/*','!web/3.js'})

->将删除web/下的所有内容,但保留3.js

代码语言:javascript
复制
web/**

del('web/**','!web/sub1/1.js'),del('web/**','!web/3.js')

->两种形式的结果是相同的,web/被完全删除

代码语言:javascript
复制
web/**/*

del('web/**/*','!web/sub1/1.js')

-> web/下的所有内容都已删除

del('web/**/*','!web/3.js'})

->将删除web/下的所有内容,但保留3.js

代码语言:javascript
复制
web/**/*.*

del('web/**/*.*','!web/sub1/1.js')

web/下的所有文件都将被删除,但web/ -> /1.js除外,目录结构为-> del('web/**/*.*','!web/3.js'})

->删除web/下除3.js以外的所有文件,并保留目录结构

在做完上面的测试后,我完全迷惑了,我不能从上面的测试中总结出一个规则。我找不到任何详细的文档来解释这些。有人能帮帮忙吗??

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 03:59:48

node del使用node-glob匹配目标,使用rimraf删除匹配的目标。所有匹配的目标将被传递到rimraf,rimraf将删除文件或递归删除目录。因此,您的问题的答案是您的模式与哪些目标相匹配。

web/*

匹配所有子项:web/sub1web/3.js。所有内容都将被删除,!web/sub1/1.js不排除任何内容。但是!web/3.js会排除该文件,所以只有web/sub1会被递归删除。

web/**

匹配目录和所有嵌套项:webweb/sub1web/sub1/1.jsweb/3.js。因为目录将被递归地删除,所以任何文件排除都是无效的。

网站/**/*

匹配所有嵌套项:web/sub1web/sub1/1.jsweb/3.jsweb/sub1将被递归删除,排除!web/sub1/1.js无关紧要。但是exclusion !web/3.js保留了这个文件。

网站/**/*.*

仅匹配嵌套文件:web/sub1/1.jsweb/3.js。所以不会删除任何目录,排除文件会保留它。

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

https://stackoverflow.com/questions/26824944

复制
相关文章

相似问题

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