一。locate
locate命令用于文件查找时在数据库中查找,模糊匹配;update可以创建该数据库
语法:locate [option] filename
选项:-i 忽略大小写
-n N 匹配前N行
二。find
find命令用于实时查找,精确匹配文件名
语法:find [DIR,...] [CRITERIA] [ACTION ...]
eg:find /root
find /etc (查找/etc下的所有文件)
CRITERIA:
1.
-name 根据文件名查找
-iname 表示根据文件名查找且不区分大小写
eg:find /tmp -name "test*"
2.根据文件名通配符查找(不是正则表达式)
* 匹配任意长度的任意字符
?匹配任意单个字符
[]范围表达式,一次匹配范围中的一个字符
eg:find /etc/ -name "passwd?"
find /etc/ -name "passwd*"
3.根据用户来查找
-user
eg:ls -l `find /home -user redhat`
-group 根据组来查找
-uid
eg:ls -l `find -uid 501`
-gid
4.使用逻辑符号,多用于连接多个以不同标准查找的操作(比如按-name和-user)
-a 与
-o 或
-not 非
!非
eg: ls -ld `find /tmp -name "test*" -a -user redhat`
(既以text开头,又属于redhat的文件)
ls -ld表示以长格式显示目录本身的属性 不显示目录中文件的属性
eg:ls -ld `find /tmp -name "test*" -o -user redhat`
(以text开头,或属于redhat的文件)
eg:ls -ld `find /tmp -not -user root`
(以text开头,或属于root的文件)
ls -ld `find /tmp ! \( -user redhat -o -user root \)`
(既不属于rehat也不属于root的文件,注意:括号以内容之间必须有空格)
5.根据时间戳查找
-atime (访问时间,以天为单位)
-mtime (修改时间,修改的是实际数据)
-ctime (改变时间,改变的只是索引里的信息)
eg:find /etc -atime +5
-amin [+/-] 5 (访问时间,以分钟为单位)(如果不写+或-,则表示被访问过刚好5
分钟,+表示多于5分钟,-表示少于5分钟)
-mmin
-cmin
-anewer a.txt (比a.txt 最近的访问时间还近的文件)
eg:find /etc -anewer /etc/passwd
-cnewer a.txt (比a.txt最近的的改变时间还近的文件)
-mnewer a.txt (比a.txt最近的修改时间还近的文件
6. -type(根据文件类型查找)
f 文件
d 目录eg:ls -l `find /etc/ -type d`
l 链接文件
s 套接字文件
b 块设备
c 字符设备
p (pipe)管道
-size(根据文件大小查找)
[+/-]N
find /etc/ -size +100k(大于100k的)
当N是1的时候比较特殊:
ls -l `find /etc -size 1k`
显示的是小于1k的所有文件
7.-perm [-/]mode(根据权限查找)
ls -d `find /tmp -perm 755`
-表示每一类用户的权限都必须匹配
find ./ -perm -222(每类用户都必须有写权限,属主,属组,其他)
find ./ -perm /222(至少有一类用户有写权限)
find ./ -perm -777 (每类用户都必须有写,读,执行权限)
find ./ -perm /777 (至少有一类用户有写,读,执行,中的至少一种)
ls -ld `find /etc -perm /001 (其他用户有执行权限的文件)
ls -ld `find /etc -perm /001 -not -type d -not -type l`
8.
-nouser 没有属组的文件
-nogroup 没有属组的文件
action:
-print
-ls
-ok (对find到的文件做一系列操作并加上确认提示信息)
-exec (对find到的文件做一系列操作)
find ./ -perm /001 -not -type d -ls
find ./ -perm /001 -not -type d -exec chmod o-x {} \;
({}表示占位符,是ok和exec选项的用法,表示find查找到的文件,必须以\;结尾)
find ./ -name "[[:alpha:]][[:digit:]]" -exec mv {} {}.old \;
(在找到的文件的结尾加上.old}
find /tmp -atime +30 -exec rm -rf {} \;
xargs 对find到的文件做一系列操作
find ./ -naem "*.old" | xargs chmod 755
阅读(1436) | 评论(0) | 转发(0) |