文件的命令;locate
和 find
一、locate
,locate
这个命令是对数据库进行遍历;
创建数据库的命令:updatedb, locate
查找文件速度快,模糊匹配
语法:locate [option] filename
选项:-i
忽略大小写
-n
查找结果的前N
行
eg: locate
–i passwd
locate -n 5 passwd
二、find
Find
对指定查找目录进行遍历查找,精确查找文件名
使用格式
:语法:find [DIR,...] [CRITERIA
规则] [ACTION ...]
eg:
find /etc /var -name passwd #
目录之间空格
(1
)根据文件属性查找
# -name
文件名查找)
# -iname
忽略大小写
*
任意的字符
?任意的单个字符
[ ]
括号里面的任意一个字符
find /etc –name “*g[br]ub?”
# -user
属主来查找文件
# -group
属组来查找文件
#find /etc -uid 500 uid
是500
文件
#find /etc -gid 888 gid
是888
的文件
(2
)逻辑符号-a -o –not
的使用
# -a
两个不同的条件必须满足
# -o
两个不同的条件满足其一
# -not
非
(3
)根据文件时间戳来查找文件
stat
命令来查文件时间信息:
天为单位:
-atime
访问时间
-mtime 修改时间
-ctime 改变时间
-mtime 修改时间
-ctime 改变时间
分钟为单位:
#-amin
#-mmin
#-cmin
#find /tmp –atime +5
五天内没访问过的文件
#find /tmp -atime -5
五天内访问过的文件
(4
)根据文件类型来查找
-type
f
普通文件
d
目录文件
l
链接文件
b
块设备文件
c
字符设备文件
p
管道文件
s socket
文件
文件大小查找 -size
#find /tmp -size 2M //
查找在1-2M
之间的文件
#find /tmp -size +2M //
查找大于2M
的文件
#find /tmp -size -2M //
查找小于2M
的文件
文件权限查找
-perm
#find /etc -perm 755 //
查找权限是755
的文件
#find /tmp -perm +222 //
只要有一类用户一个权限位匹配就行
#find /tmp -perm -222 //
所有类别用户要有写权限的文件
(5
)-nouser -nogroup
#find /etc -nogroup –a –nouser //
查找既没有属主又没有属组的文件
action
动作
-print
默认动作
-ls ls
显示出来
-ok [commend]
查找执行命令后询问
-exec [commend]
查找执行命令后不询问
-exec rm {} \;{}
表示占位符,是ok
和exec
选项的用法必须以\;
结尾
-exec mv {} {}.txt \;
给查找到的文件加后缀.txt
实例:
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 \)
-not !
3
、查找/etc
目录下最近一周内内容修改过且不属于root
及student
用户的文件;
# find /etc -mtime -7 -a -not -user root -a -not -user student
# find /etc -mtime -7 -a -not \( -user root -o -user student \)
4
、查找当前系统上没有属主或属组且最近1
天内曾被访问过的文件,并将其属主属组均修改为root
;
# find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5
、查找/etc
目录下大于1M
的文件,并将其文件名写入/tmp/etc.largefiles
文件中;
# find /etc -size +1M -exec basename {} >> /tmp/etc.largefiles
6
、查找/etc
目录下所有用户都没有写权限的文件,显示出其详细信息;
# find /etc -not -perm /222 -ls
转载于:https://blog.51cto.com/wang888long/787539