Linux系统find用法详解

2670阅读 0评论2014-10-24 helloclei
分类:系统运维

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天前的文件然后执行删除操作。


附:

上一篇:没有了
下一篇:【第一章 正则表达式入门】egrep的元字符