find用法:
find 起始目录 寻找条件 操作
find会根据我们给的寻找条件从起始目录开始查找,包括起始目录下的子目录和文件。
find命令中寻找条件可以用 and,or,not逻辑运算符来表示:
①
and,都为真才执行,参数为 -a,find缺省就是 -a
例如:
find ./ -name 'tmp' -xtype c -user root
查找本地目录下类型为字符设备文件,用户为root,名字叫 tmp的文件。
②
or,逻辑或,option只要有一个满足执行,参数 -o
例如:
find –name ’tmp’ –o –name ’mina*’
该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。
③
not,逻辑非,查找不满足条件的,参数 !
find ! -name '0101*'
查找名字不是0101*的文件。
需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例:
find \(–name ’tmp’ –xtype c -user ’inin’ \)
其他option 的参数
-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。
-lname 同上,只是查找符号链接,也可以使用通配符。
-gid n 查找属于ID号为 n 的用户组的所有文件。
-uid n 查找属于ID号为 n 的用户的所有文件。
-group ’字串’ 查找属于用户组名为所给字串的所有的文件。
-user ’字串’ 查找属于用户名为所给字串的所有的文件。
-empty 查找大小为 0的目录或文件。
-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。
-type x 查找类型为 x 的文件,x 为下列字符之一:
b 块设备文件,例如硬盘灯。
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 普通文件
l 符号链接文件(symbolic links)
s socket文件
以时间为条件进行查找
?time +n N天前
?time -n N天内
?time n N天前当天中
?min +n N分钟前
?min -n N分钟内
?min n N分钟前本分钟中
?的值分别为:
a:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;
c:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
m:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;
find ./ -mtime +2 -mtime -4 查找4天内,2天前的文件。
exec选项
-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;"
{}和\ 之间一定要有空格。
例如:
find ./ -mtime +2 -mtime -4 -exec rm {}\;
找到4天内,2天前的文件然后执行删除操作。
附:
阅读(200) | 评论(0) | 转发(0) |