您的位置:首页 > 运维架构 > Linux

Linux中与文件查找相关命令

2012-02-11 23:24 330 查看
在Linux操作系统中,我们经常会遇到这样的情况:我们创建了一个文件,然后过了几天需要再用文件的时候忘了文件放在哪儿了。因此,我们就需要做文件查找。需要用到以下命令。
一,locate
特点:根据数据库,做非实时查找,查找结果不精确,但速度快;
怎样使用:locate KEYWORD
-c KEYWORD 统计匹配到的文件个数;
-n KEYWORD 匹配前n个;
另:使用命令updatedb 手动生成locate所依赖的数据库;
二,find
特点:实时查找,精确但速度慢;
怎样使用:find [dir1(路径),...] [criteria(查找标准),...] [action(查找到后的操作),...]
eg:find /etc -name "passwd"
1)Criteria(查找标准):
-name NAME 精确查找 文件名有空格得用双引号引起来;支持globbing方式的文件名通配,*:匹配任意长度的任意字符;?:任意单个字符。
eg:find /etc/ -name "passwd*"
-iname 不区分文件名中字母的大小写
-regex “PATTERN”查找符合模式的文件名
-user USERNAME 根据用户名查找
eg:find /tmp -user redhat 查找/tmp下属主是redhat的文件;
-group GRPNAME 根据属组查找
-uid
-gid
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
-type f
d
l
b
c
p
s
eg:find /tmp -type s 查找/tmp下文件类型为套接字文件的文件
2)组合条件:
-a 与
-b 或
-not 非
(!!!注:“非”的优先级最高 然后是“与”最后是“或”)
eg:find /tmp -not -user redhat
find /tmp -not \( -user redhat -o -iname "*lc*" \)
-size n(K,M,G) 按文件大小查找;
eg:10M-->9-10M
-10M-->小于10M
+10M--> 大于10M
3)-atime n-->文件距离上一次被访问n天;
-n ---n天内
+n ---至少3天
-mtime n --文件被修改
-ctime n --文件被改变
-amin n --与atime 对应 单位为分钟
-mmin n
-cmin n
4)-perm
eg:-perm 755 精确到755,匹配文件的权限位755的文件
+755 |/755 --任何一类用户某一个权限位符合条件
-755 --所有类别用户的所有权限位符合条件;
5)action
-print 默认值 将匹配到的内容显示出来
-ls --以长格式显示文件属性信息
-ok --提醒确认
-exec --查找到文件后执行命令;
eg: -exec rm {} \;
(注:{} 文件名引用符;\;--结束符)
6)xargs 通过管道接受find命令查找的结果
eg:find /tmp -perm 644 | xargs chomd 755 --将find搜索到/tmp 下的文件权限位644的文件并将其权限修改为755.
总结:以上便是与文件查找的相关的两个命令;可以看出find的功能很强大,也很好用,也将是我们今后常用的命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息