find实时查找工具,可支持模糊查找、精确查找、权限查找等。
查找条件:
1. 根据文件名查找
-name 大小写敏感
-iname 忽略大小的名字
2. 根据文件从属关系查找
-user: USERNAME 根据属主指定用户的所有文件
-gourp: GROUPNAME 根据属组来查找所有文件
uid UID 根据属主指定uid的所有文件, (因为用户可能被删除)
-gid GID 查找属组指定的gid的所有文件
-nouser: 查找没有属主的所有文件
-nogroup 查找所有没有属组的文件
3. 根据文件的类型查找
-type TYPE
f: 普通文件
d: 目录文件
l: 符号链接文件(符号链接方式)
b: 块设备文件
c: 字符设备文件
p: 管道文件
s: 套接字文件
4. 组合测试
与: -a 默认
或: -o
非: -not
5. 根据文件的大小查找:
-size [+|-] # UNIT
常用单位: k, M, G
# UNIT: (#-1, #] 只要换算后在这个里面的都算
-# UNIT: [0, #-1] 小于# 的都是
+# UNIT: (#, oo) 大于# 的文件
6. 根据时间戳来查找:
时间都是相对于当前的时间往前计算的, 例如#3, 是指第2.xxx天前到3天前整的时间
以天为单位
-atime [+|-] 为单位, 访问时间
#: [#, #-1)
-#: (#, 0] 表示#-1天到今天之前的
+#: [oo, #), 例如#=3, 表示3天前到oo天以前
-mtime: 修改时间
-ctime: 创建时间
以分钟为单位:-amin: -mmin:-cmin:
7. 根据权限查找:
-perm [/|-]mode
mode: 精确权限匹配
/mode: 任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件
1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息
2、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等
3、查找/etc目录下大于1M且类型为普通文件的所有文件
4、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。
5、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录。
6、查找/etc目录下至少有一类用户没有执行权限的文件。