码迷,mamicode.com
首页 > 其他好文 > 详细

find

时间:2018-08-03 19:41:32      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:之间   权限   正则表达   标准   ogr   长度   new   正则   并集   

语法格式
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
 
参数选项 
path 命令所查找的目录路径,例如用 “.” 来表示当前目录,用 “/” 来表示系统根目录。
-mtime[-n|n|+n] 安装文件的修改时间来查找文件(这个参数最有用),-n 表示文件更改时间距现在n天以内;+n表示文件更改时间距现在n天以前;n是距现在第n天。
-atime[-n|n|+n] 按照文件的访问时间来查找文件,单位为天。
-ctime[-n|n|+n] 安装文件的状态改变时间来查找文件,单位为天。
-admin 按照文件的访问时间来查找文件,单位为分钟。
-cmin 按照文件的状态改变时间来查找文件,单位为分钟。
-mmin 按照文件的修改时间来查找文件,单位为分钟。
-group 按照文件所属的组来查找文件。
-name 安装文件名查找文件,只支持 *、?、[] 等特殊通配符。
-never 查找更改时间比指定文件新的文件。
-nogroup 查找没有有效用户组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找没有有效属主的文件,即该文件属猪在/etc/passwd中不存在。
-path pattern 指定路径样式,配合 -prune 参数排除指定目录。
-perm 安装文件权限来查找文件。
-regex 按正则表达式。
-iregex 按正则表达式,不区分大小写。
-size n[cwbkMG] 查找文件长度为n块的文件,带有 cwbkMG 时表示文件长度以字节计。
-user 按照文件属主来查找文件。
-type 查找某一类型的文件,如:b(块设备文件),c(字符设备文件),d(目录),p(管道文件),l(符号链接文件),f(普通文件),s(socket文件),D(door)。
 
Actions模块:
-delete 将查找出的文件删除。
-exec 对匹配的文件执行该参数所给的shell命令。
-ok 和 -exec作用相同,但在执行每个命令之前,都会让用户下你确定是否执行。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找。
-print 将匹配的文件输出到标准输出(默认功能,使用中可省略)。
OPERATORS find支持逻辑运算符。
!  取反。
-a 取交集,全拼为 and。
-o 取并集,全拼为 or。
 
 
查找文件并删除范例
1. 方法一,使用find+xargs(推荐使用此方法)
find /data/ -name "*.log" -mtime +5 | xargs rm -f
 
2.方法二,使用find+exec(文件多时效率低)
find /data/ -name "*.log" -mtime +5 -exec rm -f { } \;
 
按照大小查找文件:
查找 /data/ 没记录下文件大小大于10G的文件
find /data/ -size +10G 
 
查找文件时忽略某个目录
find /data/ -path "/data/app" -prune -o -size +1G
 
查找文件时忽略多个目录
使用圆括号可以将多个表达式结合在一起,但是圆括号在命令行中有特殊含义,所以在此处使用 “ \ ” 进行转义。而且, “  \( -path ”中左括号和 -path 之间有空格,“ /data/oradata \) ” 中/data/oradata 和右括号直接也有空格,这是语法要求。
find /data/ \( -path /data/app -o -path /data/oradata \) -prune -o -size +1G
 
查找比某个文件新或旧的文件
在/data 目录下查找比 file.log 旧的文件
find /data/ -newer file.log
在/data 目录下查找比 file.log 新的文件
find /data/ ! -newer file.log
 
ls -l 命令放在find命令的-exec选项中执行
find /data/ -size +1G -exec ls -l {} \;
 
ls -l 命令放在find命令的xargs后
find /data/ -size +1G |xargs ls -l
 
查找/data目录中符合要求的文件并删除,但是排除temp02.log 文件
 find /data/ -size +1G ! -name "temp02.log" |xargs rm -f 
 
 
 
 
 
 
 
 
 
 

find

标签:之间   权限   正则表达   标准   ogr   长度   new   正则   并集   

原文地址:https://www.cnblogs.com/liang545621/p/9415775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!