文件查找_2019.03.22-03:23_22:00-24:00-12:20-13:20_mage_linux_log

locate

1.非实时(模糊匹配),查找是根据全系统文件数据库进行的:只要你的linux在运行,一般linux每天的某段时间(晚上,取决你的任务计划)会自动收集本系统所有文件的相关信息保存到一个数据库中,之后根据该数据库来查找文件。非实时(昨晚我生成了数据库,今天删除2个文件,新增3个;那么删除的文件可以查到,新增的无法查到)。
2.刚刚新装的系统,此数据库还未生成,可能无法执行locate命令;但是可以手动生成该数据库:updatedb ,手动执行,费时间。
3.locate的优势在于速度快。

find

实时
精确
支持众多查找标准
遍历指定目录的所有文件完成查找,速度慢;
用法:find 查找路径 查找标准 查找到以后的处理动作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理运作:默认为打印到屏幕

匹配标准:
-name ‘FILENAME’ 对文件名作精确匹配
文件名通配:
*
?
[]

以选项为匹配标准
-iname ‘FILENAME’ 对文件名作匹配,不区分大小写
-regex PATTERN 基于正则表达式的文件名匹配
-user USERNAME 查找属主为某个用户的文件
-uid UID 根据UID查找
-giu GIU 根据GID查找
当某个用户被删除后,属于该用户的文件的属主变为其UID号
-nouser 查找没有属主的文件
应当定时查找没有属主的文件将其划归为管理员,不让其他用户访问,防止有危险命令被执行,安全!
-type 根据文件类型来查找
回忆: f d c b l p s
eg:find /tmp -type s
查找/tmp下有无套接字文件
-size
[+ | -]#k 表示kB,+10k 大于 10k ;-10k 小于 10k
不带+|- ,表示匹配为10k
#M 你懂的
#G 你懂的
eg:find /etc -size 1M
#所有小于1M的文件和 1M大小的文件都被认为匹配到
组合条件:
-a 与
-o 或
-not 非
默认与逻辑
eg:find /tmp -nouser -a -type d
#查找/tmp目录下无属主,文件类型为目录的文件
eg:find /tmp -not -type d
#查找/tmp目录下非目录的文件

练习1

找一找/tmp下非目录类型也不是套接字类型的文件

find /tmp \(-not -type d\) -a \(-not -type s\)
练习2

找到/tmp/test目录下,属主不是user1,也不是user2的文件

find /tmp/test -not -user user1 -a -not -user user2    

或者(集合摩根定律)

find /tmp/test -not \( -user user1 -o -not -user user2 \)
练习3

找到/tmp/test目录下,属主不是user1,或者类型不是目录的文件

find /tmp/test -not -user user1 -o -not -type d  
或者
find /tmp/test -not \( -user user1 -a -not -type d \)
根据文件的时间戳来查找:

#单位为天

-mtime #    #修改时间   
-ctime #    #改变时间   
-atime #    #访问时间
时间修饰:[+ | - ]
eg:  find /etc -atime  5 #表示修改时间距现在刚好有5天
  	 find /etc -atime -5 #最近5天内没访问过
	 find /etc -atime +5 #至少5天内没访问过了,5天之前访问过

#单位为分钟

	-mmin
	-cmin
	-amin
	eg:  find /etc -amin  5 #表示修改时间距现在刚好有5分钟
	  	 find /etc -amin -5 #最近5分钟内没访问过
		 find /etc -amin +5 #至少5分钟内没访问过了,5天之前访问过

应用:
很多时候,比如说你的配置文件,在/etc目录下,从来没被更改过;但是你总觉得服务器运行异常,所以到/etc目录下find一下;看看最近两天内谁改变过配置文件,一查查出来,看一下谁该的,这时候就大概可以判断是否出现异常访问行为。

根据文件的权限来查找
	-perm MODE
	作权限模式精确匹配查找
	eg:find /etc -perm 555  #找到权限为555的文件
	-perm /MODE
	eg:find /etc -perm 623  #任意一位模式匹配就可以
	-perm -MODE	  #只有文件权限完全包含此MODE时才能匹配
	eg:find /etc -perm 444  #444、555、454、545、666、777都能匹配到
#
	eg:find ./ -perm -001 #查找其他用户只有执行权限的文件
	eg:find ./ -perm /022 #查找组有写权限或者其他用户有写权限的文件
find 的动作

-print 显示
-ls 类似ls -l ,显示每个找到的文件详细信息
-ok COMMAND \; #严格遵循该形式
-ok COMMAND {} \; #严格遵循该形式,花括号{}用来作为匹配到的文件的占位符,COMMAND 命令作用在该文件上;每一次操作都需要用户确认
-exec COMMAND {} \; #同上;每一次操作不需要用户确认
#和xargs配合使用,xargs从标准输入接受创建并执行命令;
eg:find /etc -size +1M -exec echo {} >> /tmp/etc.largfile ;
同 find /etc -size +1M | xargs echo {} >> /tmp/etc.largfile ; #其追内容加时使用空格分开每行内容,不转行;

练习

eg:find ./ -perm -006 -exec chmod o-w {} ; # 找到当前目录下,其他用户有读和写权限的文件,去掉其写权限;{}花括号用来引用查找到的文件,作为该文件占位符
eg:find ./ -perm -020 -exec mv {} {}.new ; #找到当前目录下,属组有写权限的文件,将其文件明改为.new结尾。只要应用匹配到的文件就用{}。
eg:find ./ -name “*.sh” -a -perm -111 -exec o-x {} ; #找到当前目录下,所有用户都有执行权限的文件,去除其他用户的执行权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值