shell脚本(二)
shell脚本(二)
#find查找文件,以可根据时间、名称、uid、gid、权限、大小等条件查找
#-amin -10:10分钟之内访问过的文件或目录;+10:10分钟之前访问过的文件或目录.时间单位为分钟。
#查找10分钟之前30分钟之内访问过的文件或目录
find /home -amin +10 -a -amin -30
#-atime -2:48小时内访问过的文件或目录;+2:48小时之前访问过的文件或目录。
#时间单位为24小时,即2*24=48小时。
#查找1天之前3天之内访问过的文件或目录
find /var/log/ -atime +1 -a -atime -30 -exec ls -l {} \;
#-cmin -2:2分钟之内修改过权限属性的文件或目录;+2:2分钟之前修改过权限属性的文件或目录.时间单位为分钟。
#查找2分钟之前60分钟之内修改过权限的文件或目录
find /home -cmin +2 -a -cmin -60
#-ctime -2:48小时内修改过权限属性的文件或目录;+2:48小时之前修改过权限属性的文件或目录。时间单位为24小时,即2*24=48小时。
#查找3天之前5天之内修改过权限属性的文件或目录
find /var/log/ -ctime +3 -a -ctime -5 -exec ls -l {} \;
#-mmin -2:2分钟之内修改过内容的文件或目录;+2:2分钟之前修改过内容的文件#或目录,时间单位为分钟。
#查找1分钟之前30分钟之内修改过文件内容的文件或目录
find /home -mmin +1 -a -mmin -30
#-mtime -2:48小时内修改过内容的文件或目录;+2:48小时之前修改过内容的文件或目录。时间单位为24小时,即2*24=48小时。
#查找1天之前30天之内修改过内容的文件或目录
find /home -mtime +1 -a -mtime -30
#-uid (+或-)数值(0):-10:表示小于10;+1:表示大小于;没有+-5:表示等于5
#在当前目录下查找uid=0的文件或目录
find . -uid 0
#-gid (+或-)数值(0):-10:表示小于10;+1:表示大小于;没有+-5:表示等于5
#在当前目录下查找gid=0的文件或目录
find . -gid 0
#-name 查找文件或目录名称:可以使用*、+匹配符
#查找/var/log/下所有以.log结尾文件
find /var/log/*.log
#查找当前目录下uid>0,gid<2223的文件或者目录
find . -uid +0 -gid -2223
#-perm mode:
#-数值:mode转换成二进制,四个值中二进制位有1的地方一定要匹配,如0700(111000000)
#0700-7777都与之匹配,可以理解为大于0700的都匹配
#查找权限大于744的文件或目录,因为mode第1个为7,全为1,所以所有属主
#权限不为7的都不会符合,同时群组权限数值为4、5(4+1)、7(4+2+1),相与有1
#符合要求,其他权限要求与群组权限一样要求,所以test目录符合要求
find . -perm -744
#+数值:mode转换成二进制,四个值中二进制位任何有1的地方
#有其中1个值相与等于1就可以了
#+001与只要最后一位权限数值是1、5(=4+1)、7(=4+2+1)的权限都匹配
#查找包含有权限值001的文件或目录
#user3、user4和user5权限与001相与,都没有1,所以不符合要求,而ddd
#其他权限中相与有1,所以符合要求
#+mode可以理解为包含有此mode模式的都符合要求
find . -perm +001
#mode:表示等于。
#查找权限值等于001的文件或目录
find . -perm 001
#-size 文件大小:-数值表示小于,+数值表示大于,没有+-表示等于。
#查找大于10k小于30k的文件或目录
find . -size +10 -size -30k
#查找大小等于4k的文件或目录,k可以换成m或者g
find . -size 10k
#-empty:查找大小为0字节文件,或目录下没和任何子目录或文件的空目录
#-exec shell命令:对查找到的文件或目录执行shell命令
#查找大于10k小于30k的文件或目录,并将它复制到/tmp
find . -size +10k -size -30k -exec cp -rf {} /tmp \;
#whereis,-b:只查找二进制文件,-u:查找不 包含指定类型的文件,-B:只在指定目
#录查找二进制文件,-M:只要指定目录下查找帮助文件
#-S:只在指定目录查找源码文件
#whereis只会在$PATH路径下搜索
whereis ls
#aaa文件在/home下,并不在$PATH中,所以搜索不到
whereis aaa
#which,查找可执行文件,如果是别名命令时会列出具体另外信息
which ls
#locate,在已建立的档案及路径的数据库中搜索,一般搜索前先更改一下数据库
#如果不使用updatedb更新,那么在系统启动完毕后新建立的文件是无法搜索到的
#最小化安装是没有locate命令的,yum -y install mlocate安装
#它依赖/var/lib/mlocate/mlocate.db数据库
locate one_day
#新建一个文件abcd123456,再查找,因为没有updatedb,所以是找不到文件的
touch abcd123456
locate abcd123456
本文出自 “爱就行动” 博客,请务必保留此出处http://1055745601.blog.51cto.com/5003160/1659233
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。