文件搜索之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

相关推荐

  • yum –rpm前端工具详解

     1、yum 介绍        YUM: Yellowdog Update Modifier, rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具        &nbsp…

    Linux干货 2016-08-24
  • Linux用户操作、文件操作、文件筛选

    Linux用户操作、文件操作、文件筛选 编辑/etc/group文件,添加组hadoop。手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 vim /etc/group hadoop:x:1001: vim /etc/passwd hadoop:x…

    Linux干货 2016-11-17
  • 文件权限管理

    文件权限               [root@CentOS6 ~]# ll 3.txt            &nb…

    Linux干货 2016-08-04
  • 过滤语句和复制,权限的一些事例

    1.复制/etc/skel 目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 ~]# cp -r /etc/skel/ /home/tuser1/ ~]# chmod go= /home/tuser1/ 2.编辑/etc/group文件,添加组hadoop ~]# echo "hadoop:…

    Linux干货 2016-10-14
  • 用户权限管理及课后作业

    一.权限对目录、文件的意义 文件 r 可用文件查看类工具获取文件内容 w 可以修改文件内容(包括清空) x 可执行该文件 [root@localhost testdir]# cat zzz i am fine  thank you [root@localhost testdir]…

    Linux干货 2016-08-08
  • N26-第六周

    请详细总结vim编辑器的使用 vim 模式化的编辑器 vim的三种模式:1.编辑模式(命令模式)                          2.输入模式          …

    Linux干货 2017-03-13