Find 命令在指定路径中搜索筛选文件,并排除非期望目录。
第一种:
语法:
find <path> [-path <path> -prune -o] [...]
中括号是可选项,[...] 代表前面的可选项可以多次重复
譬如:
find ./openembedded-core -path ./openembedded-core/meta/recipes-support -prune -o -name "*.bb"
查找当前目录
openembedded-core
文件夹下的*.bb
, 排除掉.
/openembedded-core/meta/recipes-support
目录
第二种:
语法:
find <path> \( [-path <path> -o] [...] \) -prune -o
和第一种类似,只不过将多个排除的路径放在了 ()
中,注意括号用 \
转义
譬如:
find
./openembedded-core -path
\( -path ./meta-openembedded -o -path ./build \) -prune -o -name "*.bb"
第三种:
这种方式使用了 -not
语法:
find <path> [-not -path <path_pattern>] [...]
注意:这里的 <path_pattern>
是一个带通配符的模式,还需要加上引号,如:'./
meta-openembedded
/*'
find
./openembedded-core
-not -path './build/*' -not -path './meta-openembedded/*' -name "*.bb"
第四种:
语法和第三种一样,只不过 -not
可以用 !
来替换:
find <path> [ ! -path <path_pattern>] [...]
譬如:
find
./openembedded-core
! -path './build/*' ! -path '*/
meta-openembedded
/*' -name "*.bb"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通