Linux的文件搜索

来源:互联网 发布:灵格斯翻译家 for mac 编辑:程序博客网 时间:2024/06/16 16:57

文件查找:
locate:
非及时更新的,查找时是根据全系统文件数据库进行的;而且查找是模糊查找
手动生成文件数据库 updatedb
速度快,非实时
find:
特点:
实时,精确,支持查找的标准

用法:
find 查找路径 查找标准 查找到的处理

查找路径:默认为当前路径
查找标准:所有文件
查找到的处理:显示

查找标准:
-name ‘文件名’ :精确查找文件
文件通配符:
*:任意长度的任意字符
?:任意个单个字符
[]:范围内的某个字符
实例: find /etc –name '*passwd'
-iname '文件名' :文件名匹配时不区分大小写


-regex PATTERN:基于正则表达式模式查找文件


-user 用户名:基于用户查找文件
-group 组名:基于组名查找文件
-uid 用户id:基于用户id查找文件
-gid 组id:基于组id查找文件
-nouser :查找没有属主的文件
-nogroup:查找没有属组的文件


-type
f:普通文件
d:目录文件
s:套接字文件
c:字符文件
b:块文件
p:
l:联结文件


-size
[+|-] n k :+大于 -小于 
n M
n G


-mtime [+|-]5:表示[大于|小于]5天
-ctime
-atime


-amin [+|-]5:表示[大于|小于]5分钟

-perm mode:精确匹配
-perm -mode:必须全部包含匹配
-perm /mode: 任意有一位权限匹配到就可以 

组合条件
-a
-o
-not

查到后的动作:
-print:默认为显示
-ls:类似ls -l的形式显示每个文件的详细
-ok COMMAND \;   {}文件用花括号作为找到的文件占位符,命令需要用户确认
-exec COMMAND \;   {}文件用花括号作为找到的文件占位符,不需要用户确认

练习:
1、查找/var目录下属主为root并且属组为mail的所有文件
find /var -user root -a -group mail
2、查找/usr目录下不属于root,bin,或student的文件
find /usr -not -user root -a -not -user bin -a -not -user student
3、查找/etc目录下最近一周内修改过且不属于root及student用户的文件
find /etc -mtime -7 -a -not -user root -a -not -user student
4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主和属组均改为root
find / -nouser -o -nogroup -a -mtime -1 -exec chown root:root {} \;
5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp.etc.largefiles
find /etc -size +1M>/tmp.etc.largefiles
6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息
find /etc -not -perm /222 -ls



0 0
原创粉丝点击