原文地址: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 >
<div ><code ># locate /etc/sh
<div ><code >/etc/shadow
<div ><code >/etc/shadow-
<div ><code >/etc/shells
</td>
</tr></table>
find: find [OPTIONS] [查找路径] [查找条件] [处理动作]
查找路径:默认为当前路径;
1、查找路径
默认为当前路径,可以指定系统内的任意路径,但不建议使用/
2、查找条件
(1)基本查找条件
a、用户、用户组及文件名查找
-name "文件名":文件名支持使用globbing
glob:文件名通配;快速引用多个文件;文件名整体匹配度检测;
[^ ]:匹配指定集合外的任意单个字符;
实例:
<td >
<div >
<div ><code ># find /etc -name "passwd*"
</td>
</tr></table>
-iname "文件名" 不区分大小写
实例:
<td >
<div >
<div ><code ># find /tmp -iname "yum"
<div >
<code >/tmp/yum<code >.log
</td>
</tr></table>
-user USERname:根据属主查找
-group USERname:根据属组查找
实例:
</td>
<td >
<div >
<div ><code ># find /var -user root -o -group mail</td>
</tr></table>
-uID UID:根据指定UID查找
-gID GID:根据指定GID查找
实例:
</td>
<td >
<div >
<div ><code ># find /tmp -uID 3323 -ls
<div >
<code >2346806 0 -rw-rw-r-- 1 mageedu mageedu 0 Mar 10 09:36 <code >/tmp/mageedu</td>
</tr></table>
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件需
-nouser与-nogroup参数主要用在当公司员工离职后,虽然账户删除,但是他所有权限的文件还存在,并且以UID的形式来标识属主与属组,既当有uID有这个用户相同时就会可以查看此文件,所以需要删除此类文件。
实例:
</td>
<td >
<div >
<div ><code ># find /tmp -nouser -nogroup -ls
<div >
<code >2346806 0 -rw-rw-r-- 1 3323 3323 0 Mar 10 09:36 <code >/tmp/mageedu</td>
</tr></table>
b、文件类型查找
-type TYPE: 根据文件类型查找
实例:
</td>
<td >
<div >
<div ><code ># find /tmp -type d -ls</td>
</tr></table>
c、文件大小
-size [+|-]#UNIT:
2k指1k-2k
+#UNIT: x > #
实例:
</td>
<td >
<div >
<div ><code ># find /etc/ -type f -size +1</td>
</tr></table>
d、时间戳查找
以“天”为单位
#: 例如:今天为3月10日,3就是3月7日到3月8日(注意天是24小时制)
-#: 例如:今天为3月10日,-3就是三天内指,3月7日的现在时间到现在的时间。
+#: 例如:今天为3月10日,+3就是三天前之前指,3月7日前
以“分钟”为单位
-mmin
实例:
</td>
<td >
<div >
<div ><code ># find /etc -not -user root -not -user hadoop -mtime -7
<div ><code ># find / -nouser -nogroup -atime -3</td>
</tr></table>
e、权限查找
根据权限查找:
</td>
<td >
<div >
<div ><code ># find /etc/init.d/ -perm -113 #此处指所有用户都有执行权限,其他用户有写权限的文件或目录
<div ><code ># find /etc/ -type f -not -perm +222 #此处指所有用户都没有写权限</td>
</tr></table>
(2)组合查找条件
组合查找条件:
</td>
<td >
<div >
<div ><code ># find / ( -nouser -o -nogroup ) -a -atime -3
<div ><code ># find /etc/ -not ( -user root -o -user hadoop ) -a -mtime -7</td>
</tr></table>
3、处理动作
-print: 默认动作,打印至屏幕;
-ls: 显示找到的文件的详细属性;
#exec与ok的区别:ok会提供交互式,让你确认。而exec则不需要;
实例:
</td>
<td >
<div >
<div ><code ># find /tmp -iname "yum" -type f -ls
<div >
<code > <code >134 0 -rw-r--r-- 1 root root 0 Mar 10 09:32 <code >/tmp/yum<code >.log>/tmp/test.file \;
>/tmp/test.file \;
? y
? y
</td>
</tr></table>
总结 以上是内存溢出为你收集整理的Linux文件查找工具之find “大宝剑”--转载全部内容,希望文章能够帮你解决Linux文件查找工具之find “大宝剑”--转载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
Awk by Example--转载
上一篇
2022-05-25
linux 文件与进程
下一篇
2022-05-25
评论列表(0条)