文件查找-locate find 学习笔记

locate : (速度快)

非实时,模糊匹配 .   查找是根据全系统数据库进行的

#updatedb   手动生成文件数据库

find : (速度慢)

实时查找 ,

精确查找 ,

支持众多查找标准

遍历指定目录中的所有文件完成查找 ,

find 查找路径 查找标准 查找到以后的处理运作

查找路径 : 默认当前目录

查找标准 : 默认为指定路径下的所有文件

处理运作 : 默认为显示



匹配标准 :

-name ‘FILENAME‘ : 对文件名做精确匹配

文件名通配:

-iname ‘FILENAME‘ : 文件名匹配时不区分大小写

-regex PATTERN : 基于正则表达式进行文件名匹配

-user USERNAME : 根据属主查找

-group GROUPNAME : 根据属组查找

-uid UID : 根据 UID 查找

-gid GID : 根据 GID 查找

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

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

-type :    根据文件类型查找

f : 普通文件

d : 目录

c : 字符设备

b : 块设备

l : 连接文件

p : 管道设备

s : 套接字设备

-size : 根据文件大小查找

[+|-]#k

#M

#G

-10k  所有小于 10k 的文件

+10k  所有大于 10k 的文件

组合条件 :

-a : 与

-o : 或

-not : 非

[[email protected] ~]# find /etc -name ‘passwd‘        #在 /etc 目录下查找文件名为 passwd 的文件
[[email protected] ~]# find /etc -name ‘passwd*‘      #在 /etc 目录下查找文件名 passwd 开头的文件
[[email protected] ~]# find /tmp -user zhao             #在 /tmp 目录下查找文件属主为 zhao 的文件
[[email protected] ~]# find /etc -group mysql          #在 /etc 目录下查找文件属组为 mysql 的文件
[[email protected] ~]# find /etc -type d                   #在 /etc 目录下查找目录
[[email protected] ~]# find /etc -size 1M                 #在 /etc 目录查找大小为 1M 的文件( 1M 内的所有文件)
[[email protected] ~]# find /etc -size 10k -ls             #在 /etc 目录下查找 10k 以内的所有文件,并且长格式显示
[[email protected] ~]# find /etc -nouser -a -type d   #在 /etc 目录下查找没有属主并且类型为目录的
[[email protected] ~]# find /etc -not -type d            #在 /etc 目录下查找非目录的文件
[[email protected] ~]# find /tmp -not -type d -a -not -type s    #/tmp 目录,不是目录,并且还不能是套接字类型的文件

根据时间戳查找文件

-mtime : 修改时间   (天)

-ctime : 改变时间

-atime : 访问时间

[ +|- ]#

-mmin

-cmin

-amin

[ +|- ]#

[[email protected] etc]# find ./ -amin -5   #查找当前目录下 , 5分钟之内访问过的文件
[[email protected] etc]# find ./ -amin +5  #查找当前目录下, 5分钟之前访问过的文件(至少有5分钟没访问过)

-perm chmod  根据文件权限匹配

-perm ### : 精确匹配

-perm /### : 任意一位匹配成功即可

-perm -### : 文件权限能完全包含此 MODE 时才能显示 (三位完全包含)

动作 :

-print : 显示

-ls : 类似 ls -l 的形式显示每一个文件的详细

-ok COMMAND {} \ :   需要用户确认

-exec COMMAND

[[email protected] etc]# find ./ -perm -006 -exec chmod o-w {} \;  
#在当前目录下找到 其他人权限包含 rw 的文件,并将找到的文件,取消 w 权限. {} 为占位符
[[email protected] etc]# find ./ -perm -020 -exec mv {} {}.new \;    
#在当前目录下找到 属组包含w权限的文件,并重命名为 .new
[[email protected] etc]# fidn ./ -name "*.sh" -a -perm -111 -exec chmod o-x {} \;   
#在当前目录下找到 .sh 结尾的文件,并且有属主属组其他人都有执行权限的文件,减去执行权限

练习 :

1 . 查找 /var 目录下属主为 root 并且属组为 mail 的所有文件;

find /var -user root -group mail

2 . 查找 /usr 目录下不属于 root bin student 的文件;

find /usr -not -user root -a -not -user bin -a -not -user student

find /usr -not \( -user root -o -user bin -o -user student \)

3 . 查找 /etc 目录下最近一周内内容修改过且不属于 root 及 student 用户的文件;

find /etc -mtime -7 -not -user root -a -not -user student

4 . 查找当前系统上没有属主或属组且最近一天内曾被访问过的文件,并将其属主属组均修改为 root;

find / \(-nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;

5 . 查找 /etc 目录下大雨 1M 的文件,并将其文件名写入 /tmp/etc.largefile 文件中;

find /etc -size +1M >> /tmp/etc.largefile

6 . 查找 /etc 目录下所有用户都没有写权限的文件,显示出其详细信息

find /etc -not -perm /222 -ls

时间: 2024-11-06 09:48:08

文件查找-locate find 学习笔记的相关文章

Linux基础之文件查找:locate、find

引言: 在学习Linux中的文件查找时,突然联想到平时用的搜索引擎,在生活中我们想获取什么信息,在google等搜索引擎里面敲入就能列出符合我们条件的相关信息.如果我们不满意搜索结果可以进一步精确我们想查找内容的搜索内容,这在Linux的文件查找中称为精确匹配,但是如果我们虽然知道我们想要的内容,但是找不到特别精确的言辞来形容它因此只能输入描述性内容为搜索条件,这种在Linux的文件查找中可以称为模糊匹配.本文的初衷是希望这篇文章可以解决大家在使用Linux的过程中不至于因为查找某个文件找不到而

文件查找命令find (笔记)未完待续

之前所学的grep egrep fgrep 都是用来查找文本中的某个字符匹配的 现在来学一下查找文件命令 locate find locate 此命令是非实时查找文件,它是根据全系统文件数据库进行查找的, 仅用模糊匹配,非精确查找 locate filename 即可实现查找其它相关文件 但是注意有时候如果系统是刚安装的有可能还没建立此数据库,使用该命令会提示查找不到数据库 不过不用担心使用updatedb即可自动生成数据库,生成数据库的时候有时候会很慢,这个根据用户的 磁盘上所放的东西多少决定

linux 文件查找 (locate 与 find)

文件查找 目录 1.locate2.find 一. locate locate命令基于数据库db,所以不能实时更新 他有如下的特点: 1.查找速度快 2.是模糊查找(可能搜到了文件,也有可能搜到了目录) 3.是非实时的查找 4.由于权限的原因可能只查找到一部分的文件 locate 参数: -i 不区分大小写 -n N 只列举前N个项目 -r 支持正则表达式 locate xiaoyu 搜索名称或路径中带有"xiaoyu"的文件 例: 二. find 实时查找工具,通过遍历指定路径完成文

文件查找locate与find

  文件查找的工具 文件查找的工具  locate :非实时文件查找工具 查询依赖于事先构建的索引数据库: /varlib/mlocatr/mlocate.db 索引数据库是需要手动创建的,用 updatedb 命令实现创建更新,但较耗费系统资源,建议系统空闲时进行 locate的工作特点: 查找速度快,因为事先已构建索引数据库 模糊查找 非实时查找,根据数据库查找的,一般近期创建的文件未更新入数据库 搜索的是文件全路径 可能只搜索当前用户具备读取和实行权限的目录 相关选项 locate -i

文件查找工具Everything使用笔记

一.关于Everything Everything是一个Windows上的文件搜索引擎,支持按文件名和目录名搜索文件和目录.Everything在每次启动时根据系统内文件建立一个文件索引,并在文件或目录发生变更时更新这个索引,并根据这个索引对输入的文件名进行查找.Everything可以运行在下列操作系统中:Windows XP, Vista, Windows 7 and Windows 8,并只能索引本地NTFS分区,不支持FAT32.FAT16分区.Everything是一个免费软件. 更加

Linux对文件归档和压缩(学习笔记八)

一.归档和压缩 压缩命令工具:gzip,bzip2 归档命令工具:tar 二.压缩 2.1.gzip gzip是一种标准的.广泛应用的文件压缩和解压缩实用工具.gzip允许文件并置.用gzip压缩文件,可以得到格式为“*.tar.gz”或“*.tgz”的tarball打包文件. gzip选项 –stdout:将输出写到标准输出设备上. –to-stdout:将输出写到标准输出设备上. –decompress:解压缩文件. –uncompress:解压缩文件. -d:解压缩文件. -f:强行压缩/

kernel中对文件的读写【学习笔记】【原创】

/*1. 头文件 */ #include <linux/init.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/kernel.h> #include <linux/list.h> #include <linux/fs.h> #include <linux/uaccess.h> MODULE_PARM_DESC(ivar

access函数的使用检查文件的权限【学习笔记】

1 #include "apue.h" 2 #include <fcntl.h> 3 4 5 int main(int argc,char **argv) 6 { 7 if(argc != 2) 8 err_quit("usage:a.out <pathname>"); 9 if(access(argv[1],R_OK) < 0) 10 err_ret("access error for %s",argv[1]);

C++学习笔记(一):头文件和源文件

说明: 当一个源文件(a.cpp)要调用另一个源文件(b.cpp)定义的方法时,需要在a.cpp中写上这个方法的声明(只需要该方法的名称.返回值和参数,类似Java的接口): 如果每次调用其他文件的方法时都写上相同的声明就会很麻烦,而且当b.cpp的定义修改时所有调用到该文件的声明都要修改,这样工作量太大且容易出错,所以出现了头文件,我们把所有的声明都存放到头文件中,需要使用到的时候使用宏命令“#include”包含进这个.cpp文件中即可: #include:只有一个功能:把它后面所写的那个文