查找命令:
find 和local
local:非实时查找,模糊查找,查找是根据全系统文件数据库进行的;
updatedb,手动生成文件数据库;
查找速度快;
find:实时查找,精确查找;
支持众多查找标准,分为:
路径:默认当前路径;
标准:默认指定路径下的所有文件;
处理运作:默认为显示;
find的匹配标准:
-name file:精确查找
文件名通配
*
?
[]
-iname file :文件名匹配不区分大小写
-regex pattern :基于正则表达式进行匹配
-user username:属主查找
-group
-uid
-gid
-nouser:查找没有属主
-nogroup:没有属组
-type:
f:普通
d:目录
c:字符设备文件
b:块设备文件
l:链接
p:命令管道文件
s:套接
-size[+|-]
#k:精确多少k
#M
#G
组合条件:
-a: 与
-o:或
-not:非
[+|-] time(天)min(分钟)
-mtime:修改以前时间
-ctime:修改最近时间
-atime:修改访问时间
-mmin:修改以前时间
-cmin:修改最近时间
-amin:修改访问时间
-perm mode :权限
/mode:任意一位匹配及满足条件
-mode:精确,文件权限能完全包含此MODE时才能显示
运作:
-print:显示
-ls:类似ls -l的形式显示每一个文件的详细
-ok command {}\;每一处操作需确认
-exec command {}\;不需要确认-
特殊权限:
passwd: s
suid:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者
chmod u+s file
chmod u-s file
如果file本身原来就有执行权限,则suid显示为s;否则显示S
sgid:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
chmod g+s file
chmod g-s file
sticky:在一个公共目录,每个人都可以创建文件,但不能删除别人的文件
chmod o+t file
chmod o-t file
例题:
查找/var目录下属主为root并且属组为mail的所有文件
# find /var -user root -group mail
查找/usr目录下不属于root,bin,或student的文件
# find /usr -not -user root -a -not -user bin -a -not -user student
查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件
# find /etc -mtime -7 -not -user root -a -not -user student
查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息
# find /etc -not -perm /222 -ls