Linux find 命令用于在目录中查找文件,以下介绍它的用法。
命令格式
find 路径 -命令参数 [输出形式]
路径:查找文件的起始路径,可以递归搜索其子目录,其中(.)点号表示查找当前目录。
命令参数:命令参数是告诉linux搜索的方式,比如我们常用的可以按照文件名字 -name
搜索,可以使用 man find 查找所有参数的意思,具体参数在后面的表格中列出。
输出形式: 输出形式可以省略,可以是 -print,-printf,-print0,-exec,-ok,-ls
find命令参数
我们常用的是-name,以下以表格的方式列出find命令的参数。
find命令参数 | 具体含义 |
---|---|
-name | 按文件名称查找 |
-user | 按文件拥有者查找 |
-group | 按文件拥有组查找 |
-type | 按文件类型查找 b - 块设备文件。 |
-perm | 按文件权限查找 |
-exec | 对查找到的文件执行指定动作 |
-maxdepth / -mindepth | 指定查找范围最大/最小为第几级目录 |
-cmin | 按文件修改时间查找 |
-size | 按文件大小查找 |
-o / -a / -not | 查找条件或/且/非,它们是 or, and,not缩写 |
例子
1. 通过名字来查找
比如想查找nginx的配置文件在哪
[root@localhost ~]# find / -name nginx.conf
/etc/nginx/nginx.conf
2. 文件名使用通配符查找
比如想查找nginx的日志文件,但是不知道在哪个目录
find / -name *.log
正斜杠表示根目录下查找。
3. 按照文件拥有者查找
比如查找mysql用户的日志文件
[root@localhost/]# find / -user mysql -name *.log
/var/log/mysqld.log
4. 按照文件类型查找
相应的文件类型有:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
比如: 我们查找mysql的安装目录
[root@localhost/]# find / -type d -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql
5. 按照文件大小查找
比如我们想查找大于50m的文件
[root@localhost~]# find / -type f -size +50M