find、locate文件查找命令详解

一、locate:根据键值数据库模糊匹配,找路径

1.命令工作模式

(1)模糊查找

依赖于事先构建好的索引库,索引构建过程需要遍历整个根文件系统,占CPU使用资源

(2)无法实施更新

查找的是过去某一时刻更新的数据库文件,查找路径

系统自动更新:一般为每日系统例行性任务完成更新

手动更新数据库:uodatedb

(3)查找速度快

通过对创建的索引库的匹配遍历查找文件路径,查询速度哦哒哒增加

2.格式:locate   [OPTION]...  PATTERN…

-b:只匹配路径中的基名

-c:统计出共有多少个符合条件的文件数量

-r:基于基本正则表达式进行匹配操作

二、find:实时遍历文件系统查找文件

1.工作特性:实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找

查找速度略慢;精确查找;实时查找

2.使用格式:find 
[OPTION]  [查找起始路径]  [查找条件]  [处理动作]

(1)查找起始路径:指定具体搜索目标起始路径;默认为当前目录;

(2) 查找条件:指定的查找标准,可以是选项或者测试是条件

测试条件(查找标准):根据文件名、大小、类型、从属关系、权限等等标准进行

结果通常为布尔型("true", "false")

1)根据文件名查找:

-name  "pattern" :根据文件名查找

-iname
"pattern":根据文件名(忽略大小写)查找

注意:默认仅支持glob风格的通配符;*, ?, [],
[^]

-regex
pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名;

2)根据文件从属关系查找:

-user
USERNAME:查找属主指定用户的所有文件;

-group
GRPNAME:查找属组指定组的所有 文件;

-uid
UID:查找属主指定的UID的所有文件;

-gid
GID:查找属组指定的GID的所有文件;

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

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

3)根据文件的类型查找:-type TYPE:

4)根据文件的大小查找:

-size [+|-]#UNIT        常用单位:k, M, G

#UNIT:(#-1, #],表示#-1(一个单位数量变化)范围内的文件

-#UNIT:[0,#-1],小于

+#UNIT:(#, oo),大于

5)根据时间戳查找:

以“天”为单位:-atime|-mtime|-ctime [+|-]#

#:[#, #-1)

-#:(#,
0]

+#:(oo,
#-1]

以“分钟”为单位:-atime|-mtime|-ctime [+|-]#

6)根据权限查找:

-perm  [/|-]mode

mode:精确权限匹配;

/mode:"或"关系;任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;

-mode:"与"关系;每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;

注意:三位数字表示就为权限之间的逻辑关系

7)组合测试:将多个条件按逻辑顺序组合起来使用

与:-a, 默认组合逻辑;

或:-o

非:-not, !

(3)处理动作:对符合查找条件的文件做出的操作;默认为输出至标准输出;

-print:输出至标准输出;默认;

-ls:输出文件的详细信息;

-delete:删除查找到的文件;

-fls
/PATH/TO/SOMEFILE:保存查找到所有文件的长格式信息至指定文件中;

-ok COMMAND {} \; :对查找到的每个文件执行由COMMAND命令;每次操作都由用户进行确认;

-exec COMMAND {} \; :对查找到的每个文件执行由COMMAND命令;无需每次用确认

注意:find查找出所有符合条件的文件路径,并一次性传递给后面的命令;

find | xargs COMMAND:解决有些命令接受过长参数会执行会失败问题

三、对于find查找时在权限方面的理解总结

总结:

1.三个数字代表,每个数字代表的是一类用户的三个权限,共九个权限位

2.find的测试条件是一种查找条件的表达式,其匹配显示的结果为状态为真的结果,即符合条件的为真,否则为假。

3.三位数字表示的九位权限之间是有逻辑关系的。

-perm    mode:所写的权限要全部满足条件

-perm   /mode:三位数值所表现的九位关系是或者

从8bitys二进制角度来解析满足其中一组状态即可

用现在的权限对位减去mode,必须有一个不为负数

-perm   -mode:三位数值所表现的九位关系是与的,也就是说同时权限至少三个都要满足

用现在的权限对位减去mode,任何一个不能出现负数

时间: 2024-10-10 23:37:45

find、locate文件查找命令详解的相关文章

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹

Linux文件查找命令详解-which whereis find locate

原创BLog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=contents which命令 首先查看man which的说明 which - shows the full path of (shell) commands. 在$PATH目录下查找命令的绝对路径,PATH配置不同,查找的结果也不同 查看系统的PATH [[email protected] testForCsdn]# echo $PATH /usr/kerberos/sbin:/u

文件查找命令详解

文件查找: 在文件系统上查找符合条件的文件: (文件查找与我们之前学过的grep是不一样,grep是过滤文本的) 文件查找实现工具:locate,find (locate和find两者间的工作法则,工作模式不太一样,locate的实现机制,locate查找的机制是根据事先构建的索引来完成查找文件查找的 举例:locate  passwd 当我们执行上面的命令时会发现,虽然有文件名中包含了"passwd"但是整个文件名并不是完整的只叫passwd,locate是做模糊匹配的,就算是路径名

linux每日命令(30):Linux 用户及用户组相关文件、命令详解

阅读目录(Content) 一. 用户.用户组概念及其文件结构详解 二. 常用的用户.用户组shell命令 用户相关命令 useradd userdel usermod passwd 用户组相关命令 groupadd groupdel groupmod 三. 综合示例 1.建立两个用户组group1和group2,以及三个用户dennis.daniel.abigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下,并给dennis设置密码 2.改变abigale的

Linux文件的默认权限与查找命令详解

今天被csdn坑了!昨晚写了一夜的博客,保存到线上草稿了!可是今天打开博客,草稿箱里也找不到,发布的文章中也找不到!作为一家专门研讨技术的网站,居然还会在技术上出现这种问题,这分明就是在打自己的脸啊! 抱怨的话不多说,现在只好重起炉灶.自认倒霉了.为就接着从文件权限管理开始说,等那天有精力了再把消失的那一段内容给补上. 文件/目录的默认权限和隐藏权限 在前面几篇博客中为也已经提过,文件/目录的基本权限有rwx,那么除了这三个基本权限,Linux使用的ext2/ext3文件系统还存在着文件/目录的

linux下解压tgz文件--tar命令详解

参数:  -c :建立一个压缩文件的参数指令(create 的意思):  -x :解开一个压缩文件的参数指令!  -t :查看 tarfile 里面的文件!  特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在   !  因为不可能同时压缩与解压缩.  -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?  -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?  -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过   程! 

Linux提取RPM包文件(cpio命令)详解

在讲解如何从 RPM 包中提取文件之前,先来系统学习一下 cpio 命令. cpio 命令用于从归档包中存入和读取文件,换句话说,cpio 命令可以从归档包中提取文件(或目录),也可以将文件(或目录)复制到归档包中. 归档包,也可称为文件库,其实就是 cpio 或 tar 格式的文件,该文件中包含其他文件以及一些相关信息(文件名.访问权限等).归档包既可以是磁盘中的文件,也可以是磁带或管道. cpio 命令可以看做是备份或还原命令,因为它可以将数据(文件)备份到 cpio 归档库,也可以利用 c

.pro文件部分命令详解

#引入c++11 CONFIG += C++11 # 引入头文件的路径 INCLUDEPATH += D:\opencv\opencv3.2\configure\install\include # 引入库的路径并添加库 LIBS += -LD:\\opencv\\opencv3.2\\configure\\install\\x86\\mingw\\lib \ libopencv_core320 \ # 引入路径下的所有库 LIBS += D:/opencv/opencv3.2/configure

linux实战技能100讲---初识pwd和ls命令详解

1. pwd  显示当前文件的路径 2.cd cd   /path/to  绝对路径 cd   ./path/to  相对路径 cd  ../path/to  相对路径 绝对路径和相对路径 3.ls  查看目录下有哪些文件  显示不同颜色的文件夹表示被赋予了不同的权限 4.如果命令的终端里  显示  #  表示当前账号不受限制 5.切换为root用户  su - root            -   带着环境变量 6.清除屏幕内容  clear   或者 Ctrl + L linux有个概念叫