为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2018-12-18 19:37:08
需求:想要匹配文件夹A(包括无限递归子目录)下面所有的JS文件,但不包括某个名为node_modules子孙目录下的js文件。目前的做法就是用nodeJS文件夹层层遍历,判断目录文件夹名称。感觉应该用一个linux命令就可以实现,但是没写出来。。请问各路大神该怎么写?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

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扩展正则才能支持这个正则查询


查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 1581 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信