文件搜索之find的使用

一.find介绍:

  find是Linxu中一个十分常用的文件查找工具,其工作原理是通过遍历启起始路径下文件层级结构完成的,其特点是查找速度慢,能做到实时查找和精确查找。

二.使用方法:

find  start_path search_conditions  action

1.statr_path:所要查找的文件的起始位置,默认是当前目录

2.earch_conditions:

(1)根据文件名进行查找:

 -name filename :根据文件名进行查找,filename支持glob风格的文件名通配

 -iname filename:根据文件名进行查找,filename支持glob风格的文件名通配,不过忽略文件名中的大小写

使用示例:查找当前目录下以txt结尾的所有文件

find ./ -name "*.txt" -print


(2)根据文件的所属关系进查找

-user username:查找属主为username的文件

-group groupname:查找数组为group的文件

-uid UID:查找属主为UID的文件

-gid GID:查找属组为GID的文件

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

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

使用示例:查找/etc下没有属主的文件

find /etc -nouser -print

(3)根据文件类型进行查找

-type filetype

filetype有:

f:普通文件
b:块设备文件
d:目录
p:管道文件
l:链接文件
c:字符设备文件
s:套接字文件

使用示例:查找/etc目录下没有属主的普通文件

find /etc -nouser -type f -print

(4).根据文件的大小来查找

-size {+|-}#{K,M,G},可以以K,M,G为单位进行查找

#:查找大小为#的文件

+#:查找文件大小至少为#的文件

-#:查找文件大小至多为#的文件

使用示例:查找/etc下没有属组,大小为至少10k的普通文件

find /etc -nogroup -size +10k -type f -print

(5)根据时间戳进行查找

-atime day:查找在day天之内被访问过的文件

-ctime day:查找day天之内有改变的文件

-mtime day:查找day天之内有修改的文件

-amin min:查找min分钟之内被访问过的文件

-cmin min:查找min分钟之内被访问过的文件

-mmin min:查找min分钟之内被修改过的文件

使用示例:查找/etc下一个月之内被访问过,没有属主,大小为至多1M的普通文件

find /etc -atime 30 -nouser -size -1M -type f -print

(6)根据文件的权限进行查找

-perm {/|-} mode

mode:查找文件的权限为mode的文件,例如111查找属,属组,其他用户都有执行权限的文件

/mode:查找任何一类用户满足其中任何一个权限位的文件,例如/111,查找属主,属组,或其他用户之中任意一个具有执行权限的文件

-mode:查找所有用户的所有位都满足的文件,例如-111,查找权限小于111的文件,即每一位用户权限都不能超过1的文件

使用示例:查找/etc下一个月之内被访问过,大小为至多1M,属主,属组,或其他用户其中之一能执行的文件

find /etc -atime 30 -size -1M -perm /111 -print

(6).组合测试

-a : 与运算逻辑,默认也是这种组合逻辑

-o:或运算逻辑

-not,!:非运算逻辑

使用示例:查找/etc中没有属主或者至少为1M的文件

find /etc -nouser -o -size +1M -print


(7)根据文件是否为空来查找

-empty

使用示例:查找/etc下的空文件

find /etc -empty -print

3.action:默认为打印查找到的文件名,也可以通过 -exec command {} \的方式对查找到的文件进行指定操作

-print:打印查找到的文件名,也是默认处理方式

-ls :将查找到的文件使用ls列出

-exec command {} \ :对查找到的每个文件执行command命令

当所要执行的命令要接受较长的命令参数时,要通过管道送给xargs来执行,例如 find ./ -name "*.txt|xarg ls -l -h {} \

使用示例:将/etc下所有以.txt结尾的文件找到并删除之

find /etc -name "*.txt" | xarg rm -f {} \ 

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

赞 (0)
zhangbaozhangbao
上一篇 2016-11-01 22:15
下一篇 2016-11-01 23:02

相关推荐

  • CentOS 6上的防火墙策略的保存

    两种iptables的策略保存的方法

    2018-02-27
  • Linux系统分区管理

    管理分区     查看系统中的分区4种方式 [root@localhost ~]# ls /dev/sd* [来自内存] [root@localhost ~]# cat /proc/partitions [root@localhost ~]# lsblk /dev/sda  /dev/sda1  /dev/sda2  /dev/sda3 …

    Linux干货 2017-12-02
  • 计划任务

              前要:Linux的计划任务主要分为三块。单一的执行一次计划任务,系统自动的选择空闲时间去执行特定的任务, 周期性的执行相关任务,下面就此三块做简要的描述。 一:单一的计划任务at      &nbsp…

    2017-07-01
  • Centos6基于虚拟主机的Lamp配置bbs、Blog、PhpMyAdmin应用程序

    Centos6实现基于虚拟主机的各应用程序搭建: 一、配置三个基于名称的虚拟主机;       虚拟主机一、discuzX       虚拟主机二、wordpress       虚拟主机三…

    2017-06-01
  • 排名三剑客的VIM _正确的打开姿势!

    vim程序编辑器        vi:是老式的文字处理器。     vi的使用:【vi分为3种模式一般模式、编辑模式、命令模式】         一般模式:   vi打开文件就直接进入到了一…

    Linux干货 2017-04-10
  • 磁盘管理及文件系统

    磁盘及文件系统管理初步与进阶(重点内容) 磁盘分区及文件系统 linux系统管理 磁盘分区及文件系统管理:分区工具 linux磁盘及文件系统管理 整个操作系统的硬件组成部分,最底层是硬件设备,计算能力得以运行的最根本的基础。 计算机的五大基本部件:cpu,运算器,控制器被整合到一起,由一个硬件部件来提供。 存储器(主存rom可编址的存储单元)。主板上有cpu…

    Linux干货 2016-08-30