关闭

【linux】linux下find指令的用法总结

250人阅读 评论(1) 收藏 举报
分类:

前言:

  先阐述下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. 根据文件名或正则表达式匹配搜索


  (1),通过文件名查找

操作选项:-name

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

wKiom1c-fRfwLewaAABn2wptlQE123.png

wKiom1c-fpvTt6FGAAA3XAOelpU141.png

  (2)通过正则表达式查找

操作选项:!

操作举例:!故名思意,就是否定一个查找条件的,与逻辑-not非类似,

  find ./ ! '*.c' -print查找文件名不为.c的文件,并打印出来

wKiom1c-hZ7TILrgAADYHxhl4TA177.png


其他正则表达式还有如下一些:

    -a  与条件

    -o  或条件

    -not 非条件(此参数的功能类似于否定参数‘!’)

  2.根据文件大小查找


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

b——块(512字节); c——字节; w——字(2字节);

k——千字节 ; M——兆字节; G——吉字节。


操作选项:-size -n

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

wKioL1c-iQnxOfThAAD1FxmB8wM193.png


操作选项:-size +n

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

wKiom1c-iMGwZSySAAA03IfZmbM838.png


操作选项:-size  n

操作举例:find ~ -size  100k查找为100k的文件

我的系统下没有等于100k的文件。


  3.根据文件深度查找

操作选项:maxdepth

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

wKiom1c-i1GDL9zhAAA7sP8mmRQ142.png


操作选项:mindepth

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

wKiom1c-jH_Dfa-LAACpBsxuHpI928.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程序文件的行数)



本文出自 “滴水” 博客,请务必保留此出处http://10740329.blog.51cto.com/10730329/1775362

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15974次
    • 积分:216
    • 等级:
    • 排名:千里之外
    • 原创:109篇
    • 转载:7篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论