设为首页 收藏本站
查看: 1233|回复: 0

[经验分享] 【linux】linux下find指令的用法总结

[复制链接]

尚未签到

发表于 2018-5-20 12:38:20 | 显示全部楼层 |阅读模式
  前言:
  先阐述下find指令是干嘛的,为什么要来研究他呢?
  find指令是Linux下一个很重要的操作,因为linux是一个“一切皆文件”的操作系统,find(查找文件)指令就尤为重要了,在windows操作系统下,我们查找一个文件可以直接在计算机中搜索文件,但是linux操作系统的文件是不带后缀的,同样,Linux下的find功能相对与windows来说,强大了很多。
  

  Linux下的查找指令有多个,下面我们主要讲下locatefind两个指令
  

  locate指令是对其生成的数据库进行遍历(生成数据库的命令(updatedb)).这一特性决定了用locate查找文件的速度会很快,那么locate速度既然能够快速的查找,那为什么还需要find指令呢?因为locate指令只能对文件进行模糊匹配,精确度不是很高。
    #locate的简单操作选项:
  -i    //查找文件的时候不区分大小写  比如:locate  -i   tmp
  -n   //只显示查找结果的前N行         比如:locate -n  5  t
  

  切入我们的正题:
    find指令的用法总结:

  •   根据文件名或正则表达式匹配搜索
      

  (1),通过文件名查找
  操作选项:-name
  操作举例:先看下我们的当前目录使用pwd指令,然后在当前目录下mkdir一个文件tmp,然后使用find ./ -name tmp指令就可以找到tmp文件了,使用find ./ -name 'tmp*'可以查找所有包含tmp的文件。
DSC0000.png

DSC0001.png

  (2)通过正则表达式查找
  操作选项:!

  操作举例:!故名思意,就是否定一个查找条件的,与逻辑-not非类似,
    find ./ ! '*.c' -print查找文件名不为.c的文件,并打印出来
DSC0002.png

  

  其他正则表达式还有如下一些:
      -a  与条件
      -o  或条件
      -not 非条件(此参数的功能类似于否定参数‘!’)
  2.根据文件大小查找
  

  -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

  b——块(512字节); c——字节; w——字(2字节);
  k——千字节 ; M——兆字节; G——吉字节。
  

  操作选项:-size -n
  操作举例:find ~ -size -100k查找小于100k的文件
DSC0003.png

  

  操作选项:-size +n

  操作举例:find ~ -size +100k查找小于100k的文件
DSC0004.png

  

  操作选项:-size  n

  操作举例:find ~ -size  100k查找为100k的文件
  我的系统下没有等于100k的文件。
  

  3.根据文件深度查找

  操作选项:maxdepth

  操作举例:find -maxdepth 2 -name tmp在深度为2的目录中查找文件tmp
DSC0005.png

  

  操作选项:mindepth

  操作举例:find -mindepth 1 -maxdepth 3 -name tmp在深度为1至3中查找文件tmp
DSC0006.png

  

  4.按文件权限查找
  操作选项:

      -perm  按照文件权限查找
      -user (或者是-uid n   n是用户账号的ID) 按照文件所有人查找
      -group (或者是-gid n   n是组名的ID)按照文件的所属组查找
  操作举例:find -type f -perm 777
       find -type f -user 777
       find -type f -group 777(这里就不一一截图了,看了上面那么多想必大家都会了)
  

  5.按文件类型查找
         文件类型   类型参数   
       普通文件        f
       符号文件        l
       目   录            d
       字符设备        c
       块设备           b
       套接字           s
       管道文件        p

  操作选项:-type

  操作举例:find .  -type pfind . =type f等等
  

  6.根据文件时间查找
  Linux文件系统中的三种时间戳:
▲访问时间(-atime):用户最近一次访问文件的时间;
▲修改时间(-mtime):文件内容最后一次被修改的时间。
▲变化时间(-ctime):文件元数据(metadata,例如权限或所有权)最后一次改变的时间。
  

  操作选项:-atime  、-mtime 、-ctime(用+、-来表示大于和小于)

  操作举例:find ./ -atime -1、find ./ -atime  +1、find ./ -mtime -2、find ./ -ctime等等
  特殊:find ./ -newer tmp  ---->  查找比test.c还要新的文件
  

  7.find与xargs结合使用
  xargs参数  将标准输入转换成命令行参数
  操作选项:-atime  、-mtime 、-ctime(用+、-来表示大于和小于)

  操作举例:find -type f -name "*.txt" -print0 |xargs -0 rm -f(将找到的文件删除,xargs -0将\0作为                    输入定界符);
                  find -type f -name "*.c" -print0 |xargs -0 -1(统计所有C程序文件的行数)
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-464376-1-1.html 上篇帖子: linux facl 下篇帖子: linux vim
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表