首页 > 系统相关 >Linux中find命令的prune参数探究

Linux中find命令的prune参数探究

时间:2023-09-20 14:35:22浏览次数:47  
标签:prune Makefile mx Linux path type find

 

记得很久之前找过prune的参数使用,应急用了之后没有记录,但过了一段时间就会忘记,这次趁机找了一圈,包括Google-aosp里面的用法也对比参照了一下。

 

参考 https://www.jianshu.com/p/e0a9fb35601a

 

发现描述基本没问题,使用上还有些差异,特此记录一下:

<以下主要是  -prune -o -print 三者叠加情况的过滤实践 >

test-1:

date; mx=2; find . -maxdepth $mx -type d -path "./.git" -prune -o -path "./.repo" -prune -o -path "./out" -prune -o -type f -name "*akefile*" -print

2023年 09月 20日 星期三 13:34:05 CST

./kernel/Makefile

./u-boot/Makefile

./Makefile

test-2:

$ date; mx=2; find . -maxdepth $mx -type d -path "./.git" -prune -o -path "./.repo" -prune -o -path "./out" -prune -o -wholename "./Makefile" -prune -o -type f -name "*akefile*" -print

2023年 09月 20日 星期三 13:36:21 CST

./kernel/Makefile

./u-boot/Makefile

test-3:

$ date; ex=;mx=2; find . -maxdepth $mx -type d -path "./.git" -prune -o -path "./.repo" -prune -o -path "./out" -prune -o -wholename "./Makefile" -prune -o -type f -name "*akefile*"

2023年 09月 20日 星期三 13:37:15 CST

./kernel/Makefile

./out

./u-boot/Makefile

./Makefile

./.git

 

PS: -o 理论上和shell的或符号'||'等价,但又不太一致,它在find的输出中也有与的成分存在,后面有print参数存在时会优先被print与掉,否则依旧会跳过prune的原意来输出!

应该是内部有优先权重在匹配,有空得去看看find的源码是如何实现的。

标签:prune,Makefile,mx,Linux,path,type,find
From: https://www.cnblogs.com/rancec/p/17717252.html

相关文章

  • linux查看系统硬件信息的命令
    linux查看系统硬件信息的命令   系统和硬件  #cat/etc/redhat-release  //查看操作系统版本(redhat和centos) #head-n1/etc/issue   //查看操作系统版本 #lsb_release-a       //操作系统版本 #uname-a         //......
  • linux系统硬件配置查看方法
    一:查看cpumore/proc/cpuinfo|grep"modelname"grep"modelname"/proc/cpuinfo如果觉得需要看的更加舒服grep"modelname"/proc/cpuinfo|cut-f2-d: 二:查看内存grepMemTotal/proc/meminfogrepMemTotal/proc/meminfo|cut-f2-d:free-m|grep&qu......
  • Linux中iptables设置详细
    无论如何,iptables是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着被老板骂吧,呵呵。。。一下内容是为了防止这种情况发生而写的,当然很初级,不过一般服务器也够用了:1.首先介绍一下指令和相关配置文件1.启动指令:serviceiptablesstart2.重......
  • 关于.Net 6.0 在Linux ,Docker容器中,不安装任何依赖就生成图形验证码!!!!!!!!!!!
    在.NetFramework时代,我们生成验证码大多都是用System.Drawing。在.Net6中使用也是没有问题的。但是,System.Drawing却依赖于WindowsGDI+。为了实现跨平台,我陷入了沉思!! 微软推荐使用SkiaSharp进行替代,所以就开始了,踩坑之旅首先,安装SkiaSharp 编写好图形生成代码。......
  • linux查看文件夹大小、文件数量的方法
    查看文件数量及大小ls-l|grep"^-"|wc-l或find./company-typef|wc-l查看某文件夹下文件的数量,包括子文件夹里的。ls-lR|grep"^-"|wc-l查看某文件夹下文件夹的数量,包括子文件夹里的。ls-lR|grep"^d"|wc-l以上的命令解释:ls-l长列表输出该目录下文件信息(注意这里......
  • linux 中实现部分取反
     001、测试文件(实现仅提取==1185==和其他不包含==数字==的行)[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txt##测试文件==1185==abcadoiafa==1120==asvgaojfajsdfja==3875==yuerdded==1130==afsdalj==1185== 002、sed实现[root@pc1test2]#ls......
  • Linux 动态库符号冲突
    问题起源在Linux下编译动态库的时候,所有的符号默认都是导出的,也就是动态库中的函数名,类名等,在外部都是可见的。当程序引用多个动态库时,由于各个动态库可能属于不同的团队来开发,不同团队使用相同的第三方库的可能性也是有的(例如openssl,libcurl,cjson等),不同的团队使用的第三方......
  • linux关闭终端,后台程序不退出
    你要退出终端会话时,要是存在被停止的进程,会出现警告信息。但如果使用了后台进程,只有某些终端仿真器会在你退出终端会话前提醒你还有后台作业在运行。 如果希望运行在后台模式的脚本在登出控制台后能够继续运行,我再一篇文章中看到,有方法可以实现。有时你会想在终端......
  • (笔记)Linux修改、查看日期和时间的方法
      1、查看时间、日期#dateFriJan1114:04:10CST2019 2、修改时间语法:date-s"时:分:秒"#date-s"17:20:30" 3、修改日期、时间语法:date-s"年-月-日时:分:秒"#date-s"2019-01-1114:21:30"注意:设置时间需要使用双引号括起来,否则会报错。 ......
  • Linux 下安装安装rz/sz命令
    http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz  下载lrzsz安装包tarzxvflrzsz-0.12.20.tar.gz&&cdlrzsz-0.12.20#解压并切换到lrzsz-0.12.20目录下面yum -yinstall gcc cc./configuremakemakeinstall上面安装过程默认把lsz和lrz安装到了/usr/loc......