8.1 文件查找local;find使用

文件查找:

在文件系统上查找符合条件的文件。

文件查找:locate, find

非实时查找(数据库查找):locate
实时查找:find

locate

1 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db
2 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库 (updatedb)
3 索引构建过程需要遍历整个根文件系统,极消耗资源

工作特点:

• 查找速度快
• 模糊查找
• 非实时查找

• 搜索的是文件的全路径,不仅仅是文件名
• 可能只搜索用户具备读取和执行权限的目录

locate命令

locate KEYWORD

有用的选项

 -i 不区分大小写的搜索-n N 只列举前N个匹配项目-r 使用正则表达式

示例

搜索名称或路径中带有“conf”的文件
locate conf
使用Regex来搜索以“.conf”结尾的文件
locate -r ‘.conf$’

find

实时查找工具,通过遍历指定路径完成文件查找

工作特点:

查找速度略慢
精确查找
实时查找
可能只搜索用户具备读取和执行权限的目录

find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行; 默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕

查找条件

1指搜索层级
-maxdepth level 最大搜索目录深度,指定目录为第1级
-mindepth level 最小搜索目录深度
2 先处理目录内的文件,再处理目录
-depth

3 根据文件名和inode查找:

-name "文件名称":支持使用glob *, ?, [], [^]
-iname "文件名称":不区分字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称

4 根据属主、属组查找:

-user USERNAME:查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID:查找属主为指定的UID号的文件
-gid GroupID:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件

5 根据文件类型查找:

-type TYPE:• f: 普通文件 • d: 目录文件 • l: 符号链接文件 • s:套接字文件 • b: 块设备文件 • c: 字符设备文件 • p: 管道文件

空文件或目录
-empty
find /app -type d -empty

查找条件

组合条件:

与:-a
或:-o
非:-not, !

德·摩根定律:

(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)

示例:

!A -a !B = !(A -o B)
!A -o !B = !(A -a B)

find示例:

find -name snow.png
find -iname snow.png
find / -name “.txt”
find /var –name “
log*”
find -user joe -group joe
find -user joe -not -group joe
find -user joe -o -user jane
find -not ( -user joe -o -user jane )
find / -user joe -o -uid 500

找出/tmp目录下,属主不是root,且文件名不以f开头的文件
find /tmp ( -not -user root -a -not -name 'f' ) -ls
find /tmp -not ( -user root -o -name 'f
' ) –ls

排除目录

查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
find /etc -path ‘/etc/sane.d’ -a –prune -o -name “.conf”
查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的所有.conf后缀的文件
find /etc ( -path "/etc/sane.d" -o -path "/etc/fonts" ) -a -prune -o - name "
.conf

根据文件大小来查找:

-size [+|-]#UNIT 常用单位:k, M, G,c(byte)
#UNIT: (#-1, #] 如:6k 表示(5k,6k]
-#UNIT:[0,#-1] 如:-6k 表示[0,5k]
+#UNIT:(#,∞) 如:+6k 表示(6k,∞)

find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k   #查找出小于1000KB的文件

根据时间戳:

以“天”为单位

1 -atime 查找系统中最后n24小时访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
2 -mtime
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
3 -ctime 查找系统中最后n
24小时被改变状态的文件

以“分钟”为单位

1 -amin 查找系统中最后N分钟访问的文件
find / -amin -10 # 查找在系统中最后10分钟访问的文件
2 -mmin
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
3 -cmin 查找系统中最后N分钟被改变状态的文件

根据权限查找:

-perm [/|-]MODE
MODE: 精确权限匹配
/MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+ 从centos7开始淘汰
-MODE:每一类对象都必须同时拥有指定权限,与关系

0 表示不关注
find -perm 755 会匹配权限模式恰好是755的文件
只要当任意人有写权限时,find -perm +222就会匹配
只有当每个人都有写权限时,find -perm -222才会匹配
只有当其它人(other)有写权限时,find -perm -002才会匹配

处理动作

-ls:类似于对查找到的文件执行“ls -l”命令
-delete:删除查找到的文件
-fls file:查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
当使用ok或者exec选项时,必须以\;作为结尾。其中{}表示find命令搜索出的所有结果。所以有时会出现参数过多的命令错误,或者也会出现命令并不支持通过管道传递参数进行标准输入。

转载于:https://blog.51cto.com/13958408/2296018

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdu 5273 Dylans loves sequence 逆序数 区间dp

点击打开链接 题意&#xff1a;给n个数&#xff0c;q次询问&#xff0c;&#xff08;L&#xff0c;R&#xff09;区间内的逆序数。 思路&#xff1a; 区间dp 代码一&#xff1a; 1 #include <bits/stdc.h>2 using namespace std;3 typedef long long ll;4 const int maxn…

python第三天习题

# 1. 文件a.txt内容&#xff1a;每一行内容分别为商品名字&#xff0c;价钱&#xff0c;个数&#xff0c;求出本次购物花费的总钱数# apple 10 3# tesla 100000 1# mac 3000 2# lenovo 30000 3# chicken 10 3## 2. 修改文件内容&#xff0c;把文件中的alex都替换成SB# with ope…

智能故事机方案简介

智能故事机&#xff0c;又叫WiFi故事机&#xff0c;AI故事机&#xff0c;通过WiFi联网&#xff0c;用户语音就可以跟它进行问答、点歌等互动&#xff1b;由于联网所以可以播放云端海量的儿童音频内容&#xff1b;手机端在微信公众号或者专属APP上操作&#xff0c;可以点播相应内…

使用setsockopt()接口,设置TCP的接收与发送超时,Invalid argument错误问题

使用TCP套接字时&#xff0c;当无网络连接时&#xff0c;还会继续send&#xff0c;继续recv阻塞&#xff0c;知道TCP自己协议机制判断断开连接时才会停止发送和接收&#xff0c;时间需要几分钟之久。解决的办法是&#xff0c;自己设置接收超时时间&#xff0c;当超时后重新发送…

关于SpringCloud、SpringBoot 希望这是说得最详细的

几年前&#xff0c;没几个jar冲突一下都不叫搭框架 —— java面试必修 什么是Spring Boot 用我的话来理解&#xff0c;Spring Boot就是整合了框架的框架&#xff0c;它让一切依赖都变得有序简单&#xff0c;你不用操心A.jar是什么版本&#xff0c;又依赖哪些版本的jar&#xff…

weui-switch开关控件,表单提交后如何取值

最近在学习weui这个框架&#xff0c;做了一些小的试验&#xff0c;发现weui-switch控件直接提交不能获取到表单信息&#xff0c;在segmentfault上发现也有人提了这个问题&#xff0c;有人说可以设置一个隐含标签来捕获开关的状态&#xff0c;试了一下&#xff0c;确实可以&…

麦克风设计指导与选型参考

随着语音识别技术的成熟&#xff0c;智能音箱类产品的火爆&#xff0c;越来越多的产品可以升级为语音交互产品&#xff1b; 下面简单介绍下此类产品的语音前端--麦克风阵列设计相关注意事项&#xff1a; 线性四麦阵列构型&#xff1a;如上图所示&#xff0c;麦克风直线等距摆…

[BZOJ1419] Red is good(期望DP)

传送门 逆推 只不过顺序还是顺着的&#xff0c;思想是逆着的 f[i][j]表示还剩下i张红牌&#xff0c;j张黑牌的期望值 那么边界是 f[i][0]i&#xff0c;因为只剩i张红牌 f[0][j]0&#xff0c;只剩黑牌&#xff0c;显然直接停止最优 f[i][j] max(0,i/(ij)*f[i-1][j]j/(ij)*f[i][…

Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE

最近在新的平台上测试程序&#xff0c;以前一些没有注意到的问题都成为了性能瓶颈&#xff0c;通过设置一些TCP/IP选项能够解决一部分问题&#xff0c;当然根本的解决方法是重构代码&#xff0c;重新设计服务器框架。先列出几个TCP/IP选项&#xff1a; 选项 man 7 socket: SO_R…

云计算在未来一定是不可或缺的

2019独角兽企业重金招聘Python工程师标准>>> 在2018京东云合作伙伴大会上&#xff0c;京东云总裁申元庆表示&#xff0c;技术发展的大趋势是“分久必合&#xff0c;合久必分”循环往复的波动&#xff0c;近十年来云计算的发展将算力、存储、带宽全部集中在中央部分&…

智能音箱 之 音频通路质量--测试与参数

一、概述 当将语音识别算法接入到设备时&#xff0c;务必要保证设备的音频通路具有足够的质量。因此对设备进行音频测试&#xff0c;以评估能够影响语音识别性能的音频前端的音频参数。如下要点对语音识别至关重要&#xff1a; 自然声音合适的增益良好的信噪比一致的响应&…

关于Linux路由表的route命令

转自&#xff1a;http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Linux 内核路由表。 # route Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * …

Python学习 - 常用模块(二)

目录 一. 常用模块 - hashlib 二. 常用模块 - hmac 三. 常用模块 - logging 四. 常用模块 - re 五. 常用模块 - requests 六. 常用模块 - paramiko 一. 常用模块 - hashlib hash: 一种算法, 3.x里代替了md5模块和sha模块, 主要提供 SHA1, SHA224, SHA256, SHA384, SHA512, MD5 …

select函数分析

Select在Socket编程中还是比较重要的&#xff0c;可是对于初学Socket的人来说都不太爱用Select写程序&#xff0c;他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序&#xff08;所谓阻塞方式block&#xff0c;顾名思义&#xff0c;就是进程或是线程执行到这些…

UART介绍

1. 概述 UART, Universal Asynchronous Receiver-Transmitter, 通用异步收发器&#xff1b; 串口&#xff1a;在嵌入式里指的是UART口&#xff0c;常用TTL电平即3.3V或者5.0V&#xff1b; COM口&#xff1a;在台式机上常用的口&#xff0c;DB9那种接口&#xff0c;接口协议只…

mongodb环境安装

1、mongodb安装 我采用的是离线安装&#xff0c; &#xff08;1&#xff09;在mongodb的官方网址下载所需要的版本。我下载的是 mongodb-linux-x86_64-ubuntu1604-3.4.5.tgz 。 &#xff08;2&#xff09;下载后解压缩到待安装目录&#xff0c;我这里下载在了Downloads目录…

rabbitmq队列的exclusive,durability,auto-delete属性以及消息可靠传输设计

非集群下&#xff0c;简单的说&#xff1a;- 如果是excl&#xff0c;则设置durability没有意义&#xff0c;因为不管服务器挂了还是客户端主动/被动断开了&#xff0c;队列都会自动删除。- auto-delete&#xff0c;其实可简单的认为是同理&#xff0c;即使非excl&#xff0c;则…

IIC 总线接口详细介绍

1. 概述 IIC Inter Integrated-Circuit 总线是PHLIPS公司推出的一种串行总线&#xff0c;是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线&#xff0c;它支持多主控(multimastering)&#xff0c;其中任何能够进行发送和接收的设备都可以成为主总线。…

DMA数据传输过程

DMA方式具有如下特点&#xff1a;1、 外部设备的输入输出请求直接发给主储存器。主存储器既可以被CPU访问&#xff0c;也可以被外围设备访问。因此&#xff0c;在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队&#xff0c;一般计算机系统把外围设备的访问…

Android JNI开发系列(二)HelloWorld

2019独角兽企业重金招聘Python工程师标准>>> 入门HelloWorld 新建项目 Configure your new project部分选中 Include C Support 复选框 Next 正常填写所有其他字段并完成向导接下来几个部分 在向导的Customize C Support 部分&#xff0c;您可以使用谢列选项自定…