根据条件搜索文件。
语法
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