首页 > 代码库 > 文件查找---find

文件查找---find

文件查找(find)

1 find

    简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。

    用法:find [查找路径] [查找条件] [找到后进行的动作]

    eg. find /etc/ -name "ipsec.conf" -print

2 常用查找方式

    -name 按文件名称查找,可以使用通配符,如* ? [ ] [^ ]

    -iname    忽略文件名称大小写。

    -regex    使用正则表达式的方式匹配文件名

3,根据文件属主、属组查找

    -user    username    查找属主为username 的文件。

    -group    groupname    查找属组为groupname的文件。

    -uid        user ID        查找属主为指定UID号的文件。

    -gid        group ID        查找属组为指定GID号的文件。

    -nouser                查找没有属主的文件。

    -nogroup                查找没有属组的文件。

4,根据文件类型查找

    -type    type

            -f    查找普通文件

            -d    查找目录

            -l    查找符号链接文件

            -s    查找套接字文件

            -b    查找块设备文件

            -c    查找字符设备文件

            -p    查找管道文件

5,根据文件大小查找

    -size        [ + | - ] unit

    eg.    find /etc    -size +1M 查找/etc目录下大于1M 的文件

技术分享

6 根据时间来查找

      -atime 访问时间

     -ctime 改变状态的时间

     -mtime修改的时间    

    (1)以天为单位

        -mtime    +n    查找n天以前修改过的文件,从n+1天开始算起    

        -mtime    -n    查找当前时间之前的n天,n天以内的修改过的文件    

        -mtime    n    查找当前时间往前推第n 天修改过的文件

    (2)以分钟为单位

        用法与依天为单位类似

    eg.查找/etc 目录下7天以内访问过的文件

    find /etc/ -atime -7

技术分享

7 根据权限查找

    -perm [ + | - ] MODE

            +    MODE    任意一个权限满足都可以。

            -    MODE    必须包含全部MODE权限的文件才可以。

    MODE    精确匹配权限为MODE的文件。

    eg. find /etc/ -perm -222    查找/etc权限必须包含全部222权限的文件

技术分享

技术分享

8 查找到文件后的处理动作

    - exec COMMAND { } \; 找到文件后对文件执行COMMAND命令。

    -OK     COMMAND { } \;找到文件后询问是否对文件执行COMMAND命令。

    - print        输出到屏幕(默认操作)。

    - ls            打印到屏幕上,类似于ls    -l

    - delete        删除操作,只能删除文件。

    -fls filename    查找到的内容保存至filename文件中。

    Xargs         将前面结果分批次给后面的命令作为执行的参数。

    复制/etc 目录下所有以.conf结尾的文件到/shell

技术分享

    分批对/etc 目录下所有以.conf结尾的文件执行 ls 命令

技术分享

 

文件查找---find