find

根据条件搜索文件。

语法

find 目录 [选项]

选项

-name <filename>         按文件目录名查找。文件目录名可使用通配符"*",即表示模糊匹配所有字符。
-size <+/-filesize>      按文件目录大小查找。可以带单位查找(KMG)。
                         操作符号:
                              空  等于
                              +   加号
                              -   小于
-type <f|d|c|b|s|l>      按文件目录类型查找。
                         文件目录类型有:
                              f   普通文件
                              l   符号链接。
                              d   目录
                              c   字符设备,指键盘、打印机之类的
                              b   块设备,指硬盘设备
                              s   套接字文件
-actime <+/-time>        按访问时间查找,单位为天。文件目录被读取。
-mtime <+/-time>         按修改时间查找,单位为天。文件目录发生修改。
-ctime <+/-time>         按变化时间查找,单位为天。文件目录发生变化,被修改或权限发生变化。
-amin <+/-time>          按访问时间查找,单位为分钟。文件目录被读取。
-mmin <+/-time>          按修改时间查找,单位为分钟。文件目录发生修改。
-cmin <+/-time>          按变化时间查找,单位为分钟。文件目录发生变化,被修改或权限发生变化。
                         操作符号:
                             空   等于
                             +    多少时间之前
                             -    多少时间之内
-perm <permission>       按文件目录权限查找。
-user <username>         按文件目录所属用户查找。
-group <groupname>       按文件目录所属用户组查找。
-exec <command> {};     对查找到的文件目录进行操作,不提示。“{}”表示查找到的文件列表。
-ok <command> {};       对查找到的文件目录进行操作,会提示是否进行操作。
-regex <regex>           使用正则表达式匹配文件名。
-iregex <regex>          使用正则表达式匹配文件名,忽略大小写。
-empty                   查找空文件目录,字符长度为0的文件或目录。
-delete                  对查找到的文件目录进行删除操作。

示例

根据文件名搜索文件:

[root@localhost ~]# find / -name '*.log'

查找当前目录下有哪些空文件或空目录:

[root@localhost ~]# find . -empty

删除当前目录下的空文件和空目录:

[root@localhost ~]# find . -empty -delete

查找目录下最近七天发生修改的文件或目录:

[root@localhost ~]# find /var/log/ -mtime -7

查找当前目录所有文件目录并授权:

[root@localhost ~]# find . -name '*' -exec chmod +x {} ;

查找能够被正则表达式匹配到的文件,忽略大小写:

[root@localhost ~]# find . -iregex ^.*.sh
乐在分享!~~
原文地址:https://www.cnblogs.com/network-ren/p/15514084.html