目标
使用 locate
使用 find
使用 Gnome Search tool
locate 基于预先定义的数据库定义,这个数据库保存了所有文件的路径和权限
非实时查询
数据库必须被管理员更新
updatedb 更新数据库,然后locate passwd
完整的路径,不是单个文件名
只有这个用户对这个文件有读和执行权限
find
查询时,find比locate慢,实时查询
查询的时候没有指定路径就以当前目录开始
在找到的文件后面可以执行命令
find有基于权限的查询
find的基本案例
find -name snow.png
从当前目录查询一个叫snow.png的文件
find -iname snow.pnd
忽略大小写
find / -name '*.txt'
从根查起以.txt结尾的文件
find /etc -name '*pass*'
在etc目录下查找包含pass的文件
find /home -user joe -group joe
从home目录下查找用户是joe、组是joe的文件
find -user joe -not -group joe
用户是joe 组不是joe的
find -user joe -o -user jane
用户是joe 或者jane
find -not (-user joe -o user jane )
既不是joe 又不是jane
基于权限的查询
find -perm 755
查找系统中所有权限755的文件
find -perm +222
任何人能写就匹配
find -perm -222
每个人能写才匹配
find -perm -002
匹配o+x的
查看垃圾文件
find / -size 10M
从根开始 查找10M大小的文件 //df -h
find and Access Times 基于文件的时间戳查询
-atime
-mtime
-ctime
fine /tmp -ctime +10
文件ctime10天以前的文件
-amin
-mmin
-cmin
find /etc -amin -60
find后面接命令
-exec(不询问) of -ok(询问)
find -size +100M -ok mv {} /tmp/largefile/ ;
查询的结果 然后执行命令
案例
find -name '*.conf' -exec cp {} {}.orig ;
find /tmp -ctime +3 -user joe -ok rm {} ;
find ~ -perm -002 -exec chmod o-w {} ;
find /home -type d -ls
find -not -perm +111 -name '*.sh' -ok chmod 755 {} ;
任何一个位置上都没有x的权限并且是以.sh结尾的文件,加上755