想象一下下面的目录结构:
web/
sub1/
1.js
3.js当我使用'del‘节点模块删除文件或目录时,dir/* , dir/**, dir/**/*, dir/**/*.*的行为是不同的。
web/*del('web/*','!web/sub1/1.js')
->删除web/下的所有内容,同时删除web/sub1/1.js
del('web/*','!web/3.js'})
->将删除web/下的所有内容,但保留3.js
web/**del('web/**','!web/sub1/1.js'),del('web/**','!web/3.js')
->两种形式的结果是相同的,web/被完全删除
web/**/*del('web/**/*','!web/sub1/1.js')
-> web/下的所有内容都已删除
del('web/**/*','!web/3.js'})
->将删除web/下的所有内容,但保留3.js
web/**/*.*del('web/**/*.*','!web/sub1/1.js')
web/下的所有文件都将被删除,但web/ -> /1.js除外,目录结构为-> del('web/**/*.*','!web/3.js'})
->删除web/下除3.js以外的所有文件,并保留目录结构
在做完上面的测试后,我完全迷惑了,我不能从上面的测试中总结出一个规则。我找不到任何详细的文档来解释这些。有人能帮帮忙吗??
发布于 2014-11-10 03:59:48
node del使用node-glob匹配目标,使用rimraf删除匹配的目标。所有匹配的目标将被传递到rimraf,rimraf将删除文件或递归删除目录。因此,您的问题的答案是您的模式与哪些目标相匹配。
web/*
匹配所有子项:web/sub1、web/3.js。所有内容都将被删除,!web/sub1/1.js不排除任何内容。但是!web/3.js会排除该文件,所以只有web/sub1会被递归删除。
web/**
匹配目录和所有嵌套项:web、web/sub1、web/sub1/1.js、web/3.js。因为目录将被递归地删除,所以任何文件排除都是无效的。
网站/**/*
匹配所有嵌套项:web/sub1、web/sub1/1.js、web/3.js。web/sub1将被递归删除,排除!web/sub1/1.js无关紧要。但是exclusion !web/3.js保留了这个文件。
网站/**/*.*
仅匹配嵌套文件:web/sub1/1.js、web/3.js。所以不会删除任何目录,排除文件会保留它。
https://stackoverflow.com/questions/26824944
复制相似问题