您的位置:首页 > 数据库

Find命令的简单使用

2015-09-06 13:32 246 查看
Find:一般用于查找目录和文件文件查找一般可使用以下命令:locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;find:实时查找;查找速度略慢;精确查找find命令的一般用法:find [OPTION]... [查找路径] [查找条件] [处理动作]查找路径:默认为当前路径;查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;处理动作:对符合条件的文件做什么操作;默认为输出至屏幕查找条件:根据文件名进行查找:-name "文件名称": 支持使用glob;*, ?, [] 可使用通配符-iname "文件名称":不区分字符大小写,支持使用glob;-regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称;

根据属主、属组查找:-user USERNAME: 查找属主为指定用户的文件-group GROUPNAME:查找属组为指定用户的文件-uid UserID: 查找文件的属主指定uid的文件;-gid GroupID:查找文件的属组指定gid的文件-nouser: 查找没有属主的文件-nogroup:查找没有属组的文件

根据文件类型进行查找:-type TYPEf: 普通文件d: 目录l: 符号链接b: 块设备c: 字符设备p: 命名管道s: 套接字

组合查找条件:与条件:-a或条件:-o非条件:-not, !根据德.摩根定律演化为:!A -o !B = !(A -a B)!A -a !B = !(A -o B)

根据文件大小来查找:-size [+|-]#UNIT单位:k, M, G

#UNIT: (#-1,#]+#UNIT: (#,+oo)-#UNIT:[0,#-1]

根据时间戳:以"天"为单位-atime [+|-]# 与文件大小的统计方式有所不同#:[#,#+1)+#: [#+1,oo]-#: [0,#)-mtime-ctime

以"分钟"为单位-amin-mmin-cmin

根据权限:-perm [/|-]MODEMODE: 精确权限匹配/MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件;-MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件;

处理动作:-print: 默认处理动作-ls:类似于对查找到的每个文件做"ls -l"的操作;-delete: 删除查找到的文件;-fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;-ok COMMAND {} \;对每个文件执行指定的命令之前需要用户事先确认-exec COMMAND {} \;无需用户确认

作业:查找/var目录属主为root,且属组为mail的所有文件 find /var/ -user root group mail -ls

查找/usr目录下不属于root、bin或hadoop的所有文件

find /usr/ -not \( -user root o user bin o Hadoop \) -ls


查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件


find /usr/ -mtime -7 not \( -user root o user Hadoop \) -ls


查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件


find / -nouser -o -nogroup  -atime -7


查找/etc目录下大于20k且类型为普通文件的所有文件


find /etc/ -size +20k -type f ls


查找/etc目录下所有用户都没有写权限的文件


find /etc/ -perm not /222 -ls


查找/etc目录下至少有一类用户没有执行权限的文件find /etc/ -not -perm -111 ls

查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件find /etc/init.d/ -perm -113 -ls
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 周期性