find命令

find用于搜索文件名称,其一般格式为:find pathname -expressions

1. find常用表达式

find的表达式分为三类:选择表达式、条件表达式、操作表达式。

表达式类型用途举例
-mount选择表达式用于防止find命令的搜索范围超出当前文件系统的边界,返回值常为true(1)
-group gid或组名条件表达式检查当前的文件是否具有与grp相同的gid或组名(1) find . -group hwg -print
-name pattern条件表达式检查文件名和模式pattern是否相同,pattern可以用正则表达式给出,必要时使用引号(1) find . -name 'abc*' -print
-type t条件表达式检查当前文件的类型是否是t。t的值:d表示目录,f表示普通文件,l表示符号连接(1) find . -type f -print
-user uid或用户名条件表达式检查当前的文件所有者是否为uid或usr(1) find . -user hwg -print
-mtime [+-=]n条件表达式检查文件的修改日期(1) find . -mtime -4 -print,打印在4天内修改过的文件
(2) find . -mtime +4 -print,打印在4天之前修改过的文件
(3) find . -mtime 4 -print,打印在4天前修改过的文件
-size [+-=]n条件表达式检查文件的大小(1) find . -size +5000k -exec ls -lh {} ; 打印文件大小大于5MB的文件的具体信息
-exec cmd操作表达式用来执行cmd命令。
如果要将当前的文件名传送给命令,应该加{}标记 ,分号用来表示cmd结束,并和后面可能出现的表达式分开
(1) find . -group hwg -exec echo {} ; -print
-print操作表达式将当前的文件名送到标准输出设备显示(1) find . -print 等价于 find,表示打印当前目录(.)下的所有文件

注意:

(1) 如果没有给出pathname,默认为当前工作路径(.)

(2) 如果没有给出操作表达式,默认是-print

2. find的逻辑表达式

支持熔断操作

逻辑表达式描述
e1 -a e2与运算
e1 e2等价于e1 -a e2
e1 -o e2或运算
e1, e2逗号运算
!e1取反运算

注意:
区别以下两条命令,涉及逻辑运算符的优先级

命令用途
find . -name '[Aa]*' -o -name '*[Aa]' -print等价于find . \( -name '[Aa]*' \) -o \( -name '*[Aa]' -a -print \)
find . \( -name '[Aa]*' -o -name '*[Aa]' \) -print符合意图:输出以A(或a)开头或以A(或a)结尾的文件

3 小测试

统计在/etc为起点的目录树中,文件内容包含字符串'telnet'(不区分大小写)的文件的数目。

find /etc -type f -exec grep -li 'telnet' {} \; | wc -l

转载于:https://www.cnblogs.com/west000/p/6387780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值