11文件查找find和locate

有些时候我们是想要在系统中查找某个具体的文件,却不知道路径在哪里,只是知道其中的某些特性,比如大小或者名字什么的。这时候就要用到查找工具啦。

在文件系统上查找符合条件的文件命令有两个,locate和find,其中locate是非实时查找即数据库查找。而find是实时查找

locate:

用法:locate [OPTION]… [PATTERN]…

【option】

-i  不区分大小写

-n # 只列举前N个匹配项目

-r 使用扩展正则表达式 查询 

locate foo 搜索名称或路径中带有foo的文件

locate -r '\.foo$' 使用扩展正则表达式来搜索以 ".foo" 结尾的文件

查询系统上的文件索引数据库

/var/lib/mlocate/mlocate.db 

依赖于实现构建的索引,

索引的构建是在系统较为空闲时自动进行的(周期性任务),也可管理员手动更新数据库(updatedb)

索引构建过程需要遍历整个根文件系统,极消耗资源

工作特点:

查找速度快(只查找数据库中有的数据)

模糊查找

非实时查找(在索引构建之后创建的文件时不能找到的)

搜索的是文件的全路径,不仅仅是文件名

可能只搜索用户具备读取和执行权限的目录

find:

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]

即:find [option] [查找路径] [查找条件] [处理动作] 

查找路径:指定具体目标路径,【默认为当前目录】

查找条件:指定的查找标准,可以文件名、大小、类型、权限等。默认找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕

【查找条件】

根据文件名和inode查找:

-name “文件名称”: 支持使用glob (文件名通配符) *,?,[],[^]

-iname “文件名称” : 不区分字母大小写

inum n  按inode号查找

-samefile name 相同inode号的文件

-links n 链接数为n的文件

-regex “PATTERN”:以pattern匹配整个文件路径字符串,而不仅仅是文件名称

根据属主属组查找:

-user username:

-group groupname:

-uid userid:

-gid groupid:

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

根据文件类型查找:

-type type:  f,d,l,s,b,c,p 

根据组合条件查找:

-a  -o  -not=!

根据文件大小来查找:

-size [+|-]#UNIT   (k,M,G)

#UNIT (#-1,#] –> 如6k 即(5k,6k] 5k到6k 但不包括5k

-#UNIT:[0,#-1] –>如6k 即[0,5k]

+#UNIT:(#,∞)  大于# 但不包括#

根据时间戳查找:

以 【天】为单位

-atime[+|-]#  :  [0,#) [#,#+1) [#+1,∞]

-mtime[+|-]#  :

-ctime[+|-]#  :

以【分钟】为单位

-amin[+|-]#  :

-mmin[+|-]#  :

-cmin[+|-]#  :

根据权限查找:

-perm [/|-] mode

mode : 精确匹配,不能多不能少

/mode 或+mode : 或关系 ugo中 只要有一个匹配即可

-mode : ugo必须至少拥有或比mode更多权限

【处理动作】

-print:默认处理动作

-ls:类似于对查找到的文件执行 ls -l

-delete:删除查找到的文件

-fls file:查找到的所有文件的长格式信息保存至指定文件中

-ok commond {} \; 对查找到的每个文件执行有commond指定的命令,每个文件执行前都要交互式确认

-exec commond {} \; 对查找到的每个文件执行有commond指定的命令

{}:用于引用查找到的文件名称自身

例:

find -name “*.conf” -exec cp {} {}.orig \;

•备份配置文件,添加.orig这个扩展名

find /tmp -ctime +3 -user joe -ok rm {} \;

•提示删除存在时间超过3天以上的joe的临时文件

find ~ -perm -002 -exec chmod o-w {} \ ;

•在你的主目录中寻找可被其它用户写入的文件

find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} \;

•在 /data 目录中 找出所有 以.sh 结尾没有执行全选的文件 增加执行权限

find /home -type d -ls 

找出所有/home 目录下的 目录 列出详细信息

find /var -u root -g mail 

find /var not \(-user root -o -user lp -o -user gdm \)

find /var -ctime -7 -not \( -user root -o -user postfix \)

find / -nouser -nogroup -atime -7 

find /etc -size +1M -type f 

find /etc -not \( -perm +222 \)

find /etc -not \( -perm -222 \)

find /etc/init.d -perm /113 

find /etc -path '/etc/sane.d' -a -prune -o -name "*.conf" -print

find /etc -path '/etc/front*' -prune -o -path '/etc/hu*' -prune -o -path '/etc/lib*' -prune -o -path '/etc/se*' -prune -o -path '/etc/init' -prune -o -name "*.conf" -print

–joker的部落阁

原创文章,作者:joker,如若转载,请注明出处:http://www.178linux.com/61122

(0)
jokerjoker
上一篇 2016-11-27 21:31
下一篇 2016-11-27 22:45

相关推荐

  • Hadoop新增datanode与SecondaryNameNode

    无论是新增namenode还是SecondaryNameNode,操作方法大致相同 一、如果新增datanode,需要保证namenode能无密码ssh连接到新datanode 如果是添加SecondaryNameNode,则需保证其能无密码ssh连接至各datanode和namenode,namenode也需要能无密码连接到新SecondaryNameNo…

    Linux干货 2015-03-08
  • 配置LAMP服务器网站架构

    配置LAMP服务器网站架构 LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。 结构拓扑 httpd服务器配置 安装环境 yum install httpd -y 修改httpd配置 vim /etc/ht…

    2017-06-06
  • 马哥教育网络班22期+第1周课程练习

    1.描述计算机的组成及其功能。    组成:CPU (运算器+控制器),存诸器(内存与硬盘),输入设备,输出设备。    运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。    控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。   …

    Linux干货 2016-08-22
  • shell编程基础一(多种方法求值1+2+..+100)

    #SHELL编程基础一(多种方法求值1+2+..+100)##为什么要学好shell shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容。 每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件…

    Linux干货 2017-08-26
  • Linux下的文件管理系统

    一、文件系统的FHS标准     因为Linux的属于开源系统,开发人员多,为了统一开发标准,Linux有一个文件系统标准,也就是FHS(Filesystem HierarchyStandard)标准。有了这个标准,那些独立的软件开发商、系统开发人员以及系统的使用者就能方便的在系统上操作。 二、文件系统  &…

    Linux干货 2016-08-02
  • Linux磁盘和文件系统基础

    概述     Linux系统上,磁盘要正常的进行数据的存储,需要先进行分区,再进行格式化生成文件系统,最后挂载到某个目录下,才能进行正常的数据存取,本篇就介绍一下磁盘从分区到正常使用的几个步骤,具体分为以下几个部分:     1、磁盘的基础概念   &nbsp…

    Linux干货 2016-08-29