Linux常用命令(五)

本文主要介绍find命令以及常用选项

文件搜索命令:find
语法:find 【范围】 【匹配条件】
功能:文件搜索

示例1:匹配文件名称:[-name]区分大小写
Linux常用命令(五)
解释:通过find命令,来查询文件名为newFile 与 test的文件,是精准搜索
但是,在windows下的文件搜索,搜索是进行模糊匹配的,即包含匹配条件的文件都会被罗列出来。那么,在Linux下怎么进行模糊匹配呢?请看:
Linux常用命令(五)
解释:在命令里,init两边都有*,就表示模糊匹配。若写成"init*",就表示要搜寻以init开头的文件。同理,写成"*inti",就是表示搜寻文件名以init结尾的文件。若已知某文件名为init后还有若干个字符,那就可以用以下命令:
Linux常用命令(五)
?表示匹配单个字符
同理,【-iname】不区分大小写,与-name操作是一样的,在这里不再赘述。
注意:在服务器繁忙时尽量不要进行搜索,因为find命令本身就很耗费资源;搜索范围越小越好,越精准越好

示例2:根据文件大小进行find
Linux常用命令(五)
解释:-size选项表示根据文件大小来进行find。但是,204800的单位是【数据块】,在Linux下,一个数据块=0.5KB=512KB,因此这条命令的意思就是搜索文件大小大于100MB的文件。(+n大于, -n小于, n等于)

示例3:根据文件所有者find
Linux常用命令(五)
解释:-user表示根据文件所有者进行find,同理 -group表示根据文件所属组进行find。

示例3:查询某文件大小在特定范围里(例如大于1MB小于100MB的文件)
Linux常用命令(五)
解释:-a表示两条件同时满足(and,类似于逻辑与,-o表示只满足一个)

示例4:根据类型进行find【-type】
Linux常用命令(五)
解释:在/test目录下,查询目录。(f:表示文件, d:表示目录, l:表示软链接)
还有一个较为复杂的用法:例如:find /test -name 1 -exec ls -l {} \ ;*
Linux常用命令(五)
解释:在/test目录下搜索到文件名以1开头的文件,并将详细信息列出来。其中,【-exec】表示对之前的结果进行一个操作,操作就是【ls -l】,其后的{} \ ; 可以认为是固定的。若将【-exec】改为【-ok】:
Linux常用命令(五)
解释:【-ok】将会有一步询问。这样比如我们要搜索一个文件并删除(或者其他敏感操作 ),若用【-ok】就会给我们一个再确认,减少错误的发生。