摘要:find命令的功能是根据给定的路径和条件查找相关文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符后能够实现更加复杂的功能,是系统管理员和普通用户日常工作必须掌握的命令之一。find命令通常进行的是从根目录(/)开始的全盘搜索,对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

一、语法格式:find [路径] [参数]

常用参数

-name

匹配名称

-perm

匹配权限(mode为完全匹配,-mode为包含即可)

-user

匹配所有者

-group

匹配所有组

-mtime -n n

匹配修改内容的时间(-n指n天以内, n指n天以前)

-atime -n n

匹配访问文件的时间(-n指n天以内, n指n天以前)

-ctime -n n

匹配修改文件权限的时间(-n指n天以内, n指n天以前)

-nouser

匹配无所有者的文件

-nogroup

匹配无所有组的文件

-newer f1 !f2

匹配比文件f1新但比f2旧的文件

-type b/d/c/p/l/f

匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

-size

匹配文件的大小( 50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

-prune

忽略某个目录

-exec …… {}\;

后面可跟用于进一步处理搜索结果的命令

二、使用例子

说明:find 命令可以对文件或目录安所给的条件进行查找,而且可以直接对查找结果使用命令。

1、全盘搜索系统中所有以.conf结尾的文件。

执行指令# find / -name *.conf。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(1)

2、在/usr目录中搜索所有大约10M的文件

执行指令# find /usr –size 10M。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(2)

3、在/home目录中搜索所有属于指定用户的文件

执行指令# find /home -user user。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(3)

4、在/var/log目录下搜索所有后缀为.log的文件

执行指令# find /var/log -iname "*.log"。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(4)

5、在/var/log目录下搜索所有后缀不是.log的文件

执行指令# find /var/log ! -iname "*.log"。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(5)

6、搜索当前工作目录中的所有近10天被修改过的文件

执行指令# find . -mtime 10。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(6)

7、全盘搜索系统中所有类型为目录,且权限为1777的目录文件

执行指令# find / -type d -perm 1777。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(7)

8、搜索/etc目录中所有类型为普通文件,且可以执行的文件信息

执行指令# find /etc -type f -perm /a=x。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(8)

9、查找系统中的/etc目录下所有后缀名为 .conf 的文件,并复制到 /usr/local中

执行指令# find /etc/ -name *.conf -exec cp -rp {} /usr/local \;。如下图

linux命令行信息输出到哪里(Linux系统基础指令一)(9)

linux命令行信息输出到哪里(Linux系统基础指令一)(10)

,