文件查找 find和locate

locate

  • 进行文件的搜索,非实时搜索
  • 从 /var/lib/mlocate/mlocate.db 数据库进行文件搜索,可能新建立的文件搜索不到
  • updatedb 命令能将数据库进行更新
  • locate [options] string
  • locate -i -r ".Conf$" -n 5 ; locate 3个常用选项-i不区分大小写进行搜索,-r 使用正则表达式进行搜索,-n 展示给出的行数。
  • 只在当前目录及以下搜索

find

  • find -name filename ; 进行当前目录,以及当前目录的子目录的文件搜索。
  • find -maxdepth 4 -mindepth 2 -name "f1.sh" ;限定文件搜索的目录级数范围,可单个使用
  • find / -name "*.sh" ;注意这里使用的是文件通配符
  • find / -i 345;通过结点编号尽心搜索,查看结点编号 ll -i
  • find -samefile name ;查看inode
    号相同的文件,可以查找到指定文件的硬链接。
  • find links n;可以使用链接号作为查找文件的条件。
  • find -regex "pattern" ;find -regex "^.*.sh";使用基本正则表达式进行文件搜索,需要注意的是,这里匹配的是一个完整的文件路径,而非文件名。

find / -regex ".*(.sh|.log)"

  • -user USERNAME:查找属主为指定用户(UID)的文件

  • -group GRPNAME: 查找属组为指定组(GID)的文件 -uid UserID:查找属主为指定的UID号的文件

  • -gid GroupID:查找属组为指定的GID号的文件 -nouser:查找没有属主的文件

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

  • 根据文件类型查找:
    • ** type TYPE: **
    •f: 普通文件
    •d: 目录文件
    •l: 符号链接文件
    •s:套接字文件
    •b: 块设备文件
    •c: 字符设备文件
    •p: 管道文件

  • find -atime n

  • find -atime 3 ; 表示3天到4天这个时间段,不包括4

  • find -ctime -3;表示0-2天的时间不包括3天

  • find -mtime +3 ;表示4天到正无穷,包括4天

find -size n

  • find -size 4k ; 这表示筛选(3k,4k],大小范围内的文件
  • find -size -4k ; 这表示筛选[0k,3k]范围内的文件
  • find -size +4k ;这表示筛选(4k,正无穷)范围内的文件
  • find -size +1c -size -11M ;这表示进行1个字节到10M这个范围内的文件展示

find -perm n

  • find -perm -222 ;这表示搜索所有用户都必须有写权限
  • find -perm /222 ;这表示只要有任何一个用户有写权限就行,这是或者的关系。需要注意的时候,centos7以前的就可以用+
  • find -perm /002 ; 和 find -perm -002 ;0表示对应的权限不关心,只看有值得
  • find -perm 002 ; 权限的精确匹配
  • -ls ,对于找到的文件进行ls -l命令的效果类似
  • -delete,删除符合到的文件
  • fls filename;将符合条件的文件以长格式输出到文件
    -ok command {} ; 这表示进行命令的执行,{} 表示的找到的文件

find 相关实例

  • find /root -type f -perm -222 -ok chmod a-w {} ;
  • find -type f -perm -222 -exec chmod a-w {} ;
  • 上面两个的区别在于提示与否。
Paste_Image.png

你可能感兴趣的:(文件查找 find和locate)