参考文献网站开发,铭讯网站建设,sns网站开发,做环保的网站有哪些说find之前我们先说两个概念#xff1a;文件查找#xff1b;文本过滤。这是两个不同的概念#xff0c;所使用的命令也是不一样的。 文件查找#xff1a;查找目录中的文件 文本过滤#xff1a;查找文本中的行 文本过滤的命令有#xff1a;grep 、fgrep 、egrep 等 格式为… 说find之前我们先说两个概念文件查找文本过滤。这是两个不同的概念所使用的命令也是不一样的。 文件查找查找目录中的文件 文本过滤查找文本中的行 文本过滤的命令有grep 、fgrep 、egrep 等 格式为grep [选项] [查找模式] [文件名1文件名2……] 文件查找的命令有find 、locate等 格式为find [查找目录] [查找条件] [动作] 现在大家对这两个命令有个大概的印象了吧今天我们主要总结的是文件查找的命令主要解析find。 文件查找 locate 特点 模糊查找 非实时查找 速度快 功能有限 格式#locate KEYWORD 直接跟文件名也可以说是关键字。 过程在整个系统查找但速度很快因为虽在整个系统查找但事实上是在datebase 数据库 #updatedb 创建 查找的数据库上查找也就是非实时查找。 find 特点精确实时查找而且可指定查找路径速度慢 格式为find [查找目录] [查找条件] [动作] [查找目录]可以省略省略表示当前目录及当前目录下的所有子目录。 [查找条件]也可以省略表示指定目录及子目录下的所有文件 [动作]也可以省略表示print显示出来。 [查找目录] 直接指定目录就可以例如/etc [查找条件]: -name “FILENAME” 根据文件名查找 精确查找 区分大小写 -iname FILENAME 不区分大小写 -regex PATTERN正则表达式 -iregex PATTERN 不区分大小写 -user USERNAME 查找属于某个用户的 -group GROUPNAME 根据属组 查找 -uid UID -gid GID 把用户删除之后 用户原来创建的文件的属主 为原来用户的UID -nouser 没有属主的文件 应该经常查找这类文件 给他一个属主 -nogroup 没有属组的文件 -type (f,d,l,b,c,p,s) -size [/-] # {k|M|G} 默认单位是字节 byte -size 2M 找大于2M的文件 -size -2M 找小于2M的文件 -size 2M 大于1k到两k的都显示 ls -l find /etc -size 2k 命令引用 不可以通过管道 单位是day -atime [/-]# 访问过的文件 -mtime 修改的文件 -ctime 改变 -atime 3 三天前访问的 -atime -3 最近三天访问的 -atime 3 往前数第三天访问过的文件 单位是 minute -amin [/-]# -mmin [/-]# -cmin [/-]# -perm 根据权限来查找 mode 640 精确查找 /mode /640 任何一位匹配都可以 /440 只要属主或属组有读权限的都可以满足。 -mode -640 所有都带匹配 666也可以匹配 是包含的关系 -440只要属主属组都有读权限 其他都不管 -expty -expty 寻找文件大小为0 Byte的文件或目录下没有任何子目 录或文件的空目录。 -fls 列表文件 此参数的效果和指定的“ls”参数类似但会把结果保存为指定的列表文件 查找条件也支持多条件查找条件间的逻辑关系 并 -a 默认没写 就是并关系。 或 -o 非-not ,! [动作] -print 默认是显示 -ls 显示详细信息 -ok COMMAND {} \; 固定格式 提醒用户确认 -exec COMMAND {} \; 同上 直接执行命令 {} 表示占位符xargs COMMAND 功能更强大 不需要占位符 #find | xargs COMMAND find查找到的结果通过管道送过来 example 下面通过一些例子讲解每一个选项怎么用可以达到什么效果。 查找/tmp目录下文件名为“passwd”或者属主是“root”的文件 #find /tmp -name passwd -o -user root 或关系 查找/tmp目录下文件名为“passwd”并且属主是“root”的文件 #find /tmp -name passwd -a -user root 并关系 查找/tmp目录下文件名不是“passwd”或者属主不是“root”的文件 #find /tmp -not -name passwd -o -not -user root #find /tmp -not \(-name passwd -a -user root \) 两种写法都可以达到目的。 小插曲 摩根定律感兴趣的朋友可以自己查看。有助于我们理解 !a ∪ !b ! (a ∩ b) !a ∩ !b ! (a ∪ b) 查找当前目录下没有属主和属组的文件并把属主属组改为root #find ./ -nouser -a -nogroup -exec chown root:root {}\; 查找当前目录下其他用户有写权限的文件把文件名后面加上.old #find ./ -perm -002 -exec mv {} {}.old \; {}表示占位符 前面找到谁 就把{}替换成谁 查找/tmp目录下 属主是root文件类型视普通文件的文件先显示再删除 #find /tmp -user root -type f -print (显示) | xargs rm -f 删除 下面有几道小练习题大家可以看一下用上面讲解的都可以完成同时也可以检测一下我是否讲解清楚让大家看明白了有什么建议或意见直接留言。 1、查找/var目录下属主为root并且属组为mail的所有文件 2、查找/usr目录下不属于root,bin,或student的文件 3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件 4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件并将其属主属组均修改为root 5、查找/etc目录下大于1M的文件并将其文件名写入/tmp/etc.largefiles文件中 6、查找/etc目录下所有用户都没有写权限的文件显示出其详细信息 转载于:https://blog.51cto.com/5122542/905990