加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 智能数字人、图像技术、AI硬件、数据标注、数据治理!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

在Linux中 find查找命令用法详解

发布时间:2023-07-26 10:14:29 所属栏目:Linux 来源:转载
导读:   Linux下查找文件的命令有两个,分别是locate 和 find。



  locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,
  Linux下查找文件的命令有两个,分别是locate 和 find。
 
  locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。简单介绍下它的两个选项。
 
  #locate
 
  -i        //查找文件的时候不区分大小写 比如:locate  –i   passwd
 
  -n       //只显示查找结果的前N行     比如:locate  -n  5   passwd
 
  Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
 
  find使用格式 : find [指定查找目录] [查找规则] [查找完后执行的action]
 
  find在不指定查找目录的情况下是对整个系统进行遍历查找
 
  find命令详解
 
  查找文件
 
  find ./ -type f
 
  查找目录
 
  find ./ -type d
 
  查找名字为test的文件或目录
 
  find ./ -name test
 
  查找名字符合正则表达式的文件,注意前面的‘.*'(查找到的文件带有目录)
 
  find ./ -regex .*so.*/.gz
 
  查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)
 
  find ./ -type d -print -exec ls {} /;
 
  查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,执行命令前需要确认)
 
  find ./ -type d -ok ls {} /;
 
  查找目录并列出目录下的文件(将找到的目录添加到ls命令后一次执行,参数过长时会分多次执行)
 
  find ./ -type d -exec ls {} +
 
  查找文件名匹配*.c的文件
 
  find ./ -name /*.c
 
  打印test文件名后,打印test文件的内容
 
  find ./ -name test -print -exec cat {} /;
 
  不打印test文件名,只打印test文件的内容
 
  find ./ -name test -exec cat {} /;
 
  查找文件更新日时在距现在时刻二天以内的文件
 
  find ./ -mtime -2
 
  查找文件更新日时在距现在时刻二天以上的文件
 
  find ./ -mtime +2
 
  查找文件更新日时在距现在时刻一天以上二天以内的文件
 
  find ./ -mtime 2
 
  查找文件更新日时在距现在时刻二分以内的文件
 
  find ./ -mmin -2
 
  查找文件更新日时在距现在时刻二分以上的文件
 
  find ./ -mmin +2
 
  查找文件更新日时在距现在时刻一分以上二分以内的文件
 
  find ./ -mmin 2
 
  查找文件更新时间比文件abc的内容更新时间新的文件
 
  find ./ -newer abc
 
  查找文件访问时间比文件abc的内容更新时间新的文件
 
  find ./ -anewer abc
 
  查找空文件或空目录
 
  find ./ -empty
 
  查找空文件并删除
 
  find ./ -empty -type f -print -delete
 
  查找权限为644的文件或目录(需完全符合)
 
  find ./ -perm 664
 
  查找用户/组权限为读写,其他用户权限为读(其他权限不限)的文件或目录
 
  find ./ -perm -664
 
  查找用户有写权限或者组用户有写权限的文件或目录
 
  find ./ -perm /220find ./ -perm /u+w,g+wfind ./ -perm /u=w,g=w
 
  查找所有者权限有读权限的目录或文件
 
  find ./ -perm -u=r
 
  查找用户组权限有读权限的目录或文件
 
  find ./ -perm -g=r
 
  查找其它用户权限有读权限的目录或文件
 
  find ./ -perm -o=r
 
  查找所有者为lzj的文件或目录
 
  find ./ -user lzj
 
  查找组名为gname的文件或目录
 
  find ./ -group gname
 
  查找文件的用户ID不存在的文件
 
  find ./ -nouser
 
  查找文件的组ID不存在的文件
 
  find ./ -nogroup
 
  查找有执行权限但没有可读权限的文件
 
  find ./ -executable /! -readable
 
  查找文件size小于10个字节的文件或目录
 
  find ./ -size -10c
 
  查找文件size等于10个字节的文件或目录
 
  find ./ -size 10c
 
  查找文件size大于10个字节的文件或目录
 
  find ./ -size +10c
 
  查找文件size小于10k的文件或目录
 
  find ./ -size -10k
 
  查找文件size小于10M的文件或目录
 
  find ./ -size -10M
 
  查找文件size小于10G的文件或目录
 
  find ./ -size -10G
 

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章