猿问

linux命令如何匹配多层文件夹路径?

需求:想要匹配文件夹A(包括无限递归子目录)下面所有的JS文件,但不包括某个名为node_modules子孙目录下的js文件。
目前的做法就是用nodeJS文件夹层层遍历,判断目录文件夹名称。

感觉应该用一个linux命令就可以实现,但是没写出来。。

请问各路大神该怎么写?


浮云间
浏览 1582回答 1
1回答

GCT1015

find -name '*.js' -not -path '*/node_modules/*'匹配多个文件:find \( -name '*.js' -o -name '*.vue' -o -name '*.jsx' \) -not -path '*/node_modules/*'当然你也可以用正则表达式匹配这么多种后缀:find -regextype posix-extended -regex '.*\.(js|vue|jsx)$' -not -path '*/node_modules/*'find默认的是BRE正则,由于这个表达式使用了|选择结构,这个是BRE不支持的,必须使用ERE兼容的正则。所以必须指定regextype为posix扩展正则才能支持这个正则查询
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答