Linux文件查找工具之find “大宝剑”--转载
原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一、文件查找工具常用软件 locate: ????locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。? ? find: ????find命令用来在指定目录下查找文件,通过遍历指定的目标目录,实时查找符合指定属性的文件。可以结合正则表达式(REGular EXPressio)来匹配模式。 二、软件常用参数及使用方式 locate: ????使用格式:locate [OPTION]... PATTERN... ????????常用参数: ????????????-i:忽略大小写 ? ????????实例: ????????????过滤/etc/下以sh开头的文件 </td> <div class="line number2 index1 alt1"><code class="bash plain">/etc/shadow <div class="line number3 index2 alt2"><code class="bash plain">/etc/shadow- <div class="line number4 index3 alt1"><code class="bash plain">/etc/shells </td> </tr></table> find:? ? find [OPTIONS] [查找路径] [查找条件] [处理动作] ? ? ? ? ? ? ? ? ? ? ? ? 查找路径:默认为当前路径;
1、查找路径 ????默认为当前路径,可以指定系统内的任意路径,但不建议使用/ 2、查找条件 (1)基本查找条件 a、用户、用户组及文件名查找 -name "文件名":文件名支持使用globbing ????glob:文件名通配;快速引用多个文件;文件名整体匹配度检测;
????????????[^ ]:匹配指定集合外的任意单个字符; 实例: </td> </td> </tr></table> -iname "文件名" 不区分大小写 ? 实例: </td> <div class="line number2 index1 alt1"> <code class="bash plain">/tmp/yum<code class="bash plain">.log
</td> </tr></table> -user USERNAME:根据属主查找 -group USERNAME:根据属组查找 ? 实例: </td> </td> </tr></table> -uid UID:根据指定UID查找 -gid GID:根据指定GID查找 ? 实例: </td> <div class="line number2 index1 alt1"> <code class="bash plain">2346806????0?-rw-rw-r--???1?mageedu??mageedu?????????0?Mar?10?09:36?<code class="bash plain">/tmp/mageedu
</td> </tr></table> -nouser:查找没有属主的文件 -nogroup:查找没有属组的文件需 ????-nouser与-nogroup参数主要用在当公司员工离职后,虽然账户删除,但是他所有权限的文件还存在,并且以UID的形式来标识属主与属组,既当有uid有这个用户相同时就会可以查看此文件,所以需要删除此类文件。 实例: </td> <div class="line number2 index1 alt1"> <code class="bash plain">2346806????0?-rw-rw-r--???1?3323?????3323????????????0?Mar?10?09:36?<code class="bash plain">/tmp/mageedu
</td> </tr></table> b、文件类型查找 ????-type TYPE: 根据文件类型查找
实例: </td> </td> </tr></table> c、文件大小 ????-size [+|-]#UNIT:
????????????2k指1k-2k
????????+#UNIT: x > #
实例: </td> </td> </tr></table> d、时间戳查找 ????以“天”为单位
? ? ????????#: 例如:今天为3月10日,3就是3月7日到3月8日(注意天是24小时制) ????????????-#: 例如:今天为3月10日,-3就是三天内指,3月7日的现在时间到现在的时间。 ????????????+#: 例如:今天为3月10日,+3就是三天前之前指,3月7日前 ????以“分钟”为单位
????????-mmin
实例: </td> <div class="line number2 index1 alt1"><code class="bash comments">#?find?/?-nouser?-nogroup?-atime?-3 </td> </tr></table> e、权限查找 ????根据权限查找:
</td> <div class="line number2 index1 alt1"><code class="bash comments">#?find?/etc/?-type?f?-not?-perm?+222?#此处指所有用户都没有写权限 </td> </tr></table> (2)组合查找条件 ????组合查找条件:
</td> <div class="line number2 index1 alt1"><code class="bash comments">#?find?/etc/?-not?(?-user?root?-o?-user?hadoop?)?-a?-mtime?-7 </td> </tr></table> 3、处理动作 ????-print: 默认动作,打印至屏幕; ????????-ls: 显示找到的文件的详细属性;
????????????#exec与ok的区别:ok会提供交互式,让你确认。而exec则不需要; 实例: </td> <div class="line number2 index1 alt1"> <code class="bash spaces">???<code class="bash plain">134????0?-rw-r--r--???1?root?????root????????????0?Mar?10?09:32?<code class="bash plain">/tmp/yum<code class="bash plain">.log
>/tmp/test.file?;
>/tmp/test.file?;
? ? </td> </tr></table> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |