文件查找

        不论是什么操作系统,我们经常有这样的需求---查找文件。我们在找文件的时候可以根据很多条件查找比如说:按照文件创建日期、文件大小、文件名等....。那么下面我跟大家分享下Linux系统下的文件查找。

        1.whatis ls   

基于数据库  makewhatis
查看命令所处man手册所在章节和功能
2.which  /bin/ls  
查看二进制命令的绝对路径
 
3.locate  文件名  
a.可以模糊匹配
b.基于数据库 需要更新数据库 updatedb
c.快速但需要数据库
4.find
语法:
find  查询的路径   查找的条件    逻辑表达式   连接符
 
如果不指定路径就表示当前路径  在超找的时候是递归查找
普通用户在超找文件的时候需要对目录有r-x的权限
 
条件:
      -name
      -uid n
      -gid n
      -user uname
      -group gname
      -readable  可读
      -writable  可写
      -name pattern
      -inum n(inode)  
      -perm mode(=+-)
      -size n[cwbkMG]
      -type
      -amin
      -mmin
      -cmin
      -atmie
      -mtime
      -ctime
ACTIONS
       -delete
       -exec command ;
       -ok command ;
逻辑表达式       
       -not expr
        ! expr
        expr1 -and/-a expr2
        expr1 -or/-o expr2
 
       
1.按照文件名查找
find -name a.txt
2.按照uid查找文件  (文件的拥有者)
find -user  redhat (文件的拥有者)
find -uid  0   
3.按照gid查找   (文件的所属组)
find -group   IT
find -gid  0
4.-name  模式
find     -name   a?c     ---> ? 代表一个任意字符
5.不区分大小写
find -iname  a.txt
6.按照权限查找
find -perm 111  权限为111的文件
find -perm  +444  有1位有4即可 (r)
find -perm  -444  至少每位有4,如果有附加其他权限也符合要求
dd if=/dev/zero of=file3  bs=10M count=1    制作10M的文件
7.find -size n[cwbkMG]  按照文件大小查找
find /share -size 3G    等于或者大小相等
find -size +10M         查找大小大于10M的文件
find -size -10M         查找大小小于10M的文件
8.find -type 按照文件类型查找  
             f 文件
             d 目录
             b 块设备
             c 字符型设备
             p 管道
             s 套接字
             l 软链接
9.按照三个时间匹配
find  -amin  -3  3天前被查看过的文件   3  -3  +3
      -mmin  -3  3天前被修改过的文件
      -cmin  -3  3天前被更改过内容的文件
      -atime -3  3分钟前被查看过的文件   
      -mtime -3  3分钟前被修改过的文件
      -ctime -3  3分钟前更改过内容的文件
10逻辑表达式
1.用户为redhat所属组不是redhat
find /home -user redhat -not -group redhat  
2.取反  查找文件类型不是b的文件
find /dev  ! -type b  
3.查找用户和组必须是redhat(两个条件同时满足)
find /home -user redhat -and  -group redhat
4.查找用户是redhat或者是user1的文件
find /home -user redhat -or   -group redhat
5.链接符
find / -iname a.txt   -exec  rm -rf  {} \;
-exec 表示链接符     \;表示尾
-ok    操作时有提示
-exec  操作时无提示
find / -iname a  -ok  rm -rf  {} \;   有提示