查找文件的方法

locate

locate 模糊匹配,非实时查找,是根据全系统文件数据库进行的,执行updatedb命令,手动生成文件数据库 例如 locate ifconfig

find

find 实时,精确查找,查找速度慢

find 查找的路径 查找的标准 查找后的处理的动作

查找的路径,默认是当前路径 查找的标准,默认是指定路劲下的所有文件 查找后的处理的动作,默认显示

查找的标准

-name "filename" 根据文件名称,单 引号,双引号,不加引号 -iname filename 文件名称不区分大小写 -user username 根据属主 -group groupuser -nouser 查找没有属主的文件 -nogroup 查找没有属组的文件 -uid 505 -gid 505 用户删除后,文件原来属主,属组属于该用户的,此时显示id号


-type d f s c b p l


-size
K(KB) G(GB) M(MB)


-mtime 5 +5 -5


-atime -ctime -mmin -amin -cmin


-perm mode 按权限查找,精确匹配 /mode 权限位有任何一位匹配 -mode 文件权限能完全包此mode时显示 (1)、644:rw-r--r-- (2)、755:rwxr-xr-x (3)、750:rwxr-x--- (2)包含(1),(3)mode

如找到当前文件夹属组有写权限的文件 find ./ -mode -020(只要属组有写权限的文件都能包含 ----r----即-020)


查找后的处理动作

-print 默认 -ls 类似ls -l

-ok -exce 给当前文件夹里的所有以.sh结尾的文件添加可执行权限 find ./ -name "*.sh" -exec chmod +x {} ; 可以把 -exec换为 -ok ,区别是-ok需要手动一个一个的确认

给当前文件夹里的所有以.sh结尾的文件添加后缀名-bak

使用-exec 或 -ok ,命令结尾的 \ ; 不能省略