Linux文件查找工具之find “大宝剑”--转载

Linux文件查找工具之find “大宝剑”--转载,第1张

概述原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一、文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法

原文地址: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>
<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>
<td >
<div >
<div ><code ># find /etc -name "passwd*"

</td>

</tr></table>

-iname "文件名" 不区分大小写

 

实例:

</td>
<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 “大宝剑”--转载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1050810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)