文件查找之find命令
查找
语法格式: find[路径][选项][操作]
选项 | 含义 | 示例 |
-name | 根据文件名查找,不会忽略大小写 | find/etc-name'*.conf' |
-iname | 忽略字母大小写 | find.-iname aa |
-perm | 根据文件权限查找 | find.-perm777 |
-prune | 该选项可以排除某些查找目录 | |
-user | 根据文件属主查找 | |
-group | 根据文件属组查找 | |
-mtime -n | +n | 根据文件更改时间查找 |
选项 | 意义 |
-nogroup | 查找无有效属组的文件 |
-nouser | 查找无有效属主的文件 |
-newer file1 ! file2 | 查找更改时间比file1新但比file2旧的IDE文件 |
-type | 按照文件类型查找 |
-size -n +n | 按照文件大小查找 |
-mindepth n | 从n级子目录开始搜索 |
-maxdepth n | 最多搜索到n级子目录 |
-type
选项的一些常见参数
参数 | 意义 | 举例 |
f | 文件 | find.-type f |
d | 目录 | find.-type d |
c | 字符设备文件 | find.-type c |
b | 块设备文件 | find.-type b |
l | 链接文件 | find.-type l |
p | 管道文件 | find.-type p |
-size
选项常用参数
参数 | 意义 | 举例 |
-n | 小于占用空间为n的文件 | find/-size-1M |
+n | 大于占用空间为n的文件 | find/-size+1M |
-mtime
选项常用参数
+ `-n`:n天以内修改的文件 + `+n`:n天以外修改的文件
-m
选项常用参数
-n
:n分钟以内修改的文件+n
:n分钟以外修改的文件
-mindepth n
,表示从n级子目录开始搜索
例子:在 /etc
目录下的3级子目录开始搜索 find/etc-mindepth3
-maxdepth n
,表示最多搜索到n-1级子目录
1. #查找当前目录下所有普通文件,但排除test目录 2. find . -path ./test -prune -o -type f 3. #查找当前目录下所有文件,排除etc和opt目录 4. find . -path ./etc -prune -o -path ./opt -prune -o -type f -newer file1,查找比file1更加新的文件 find/etc-newer a
查找以后的操作
-print
打印输出
-exec
对搜索到的文件进行特定的操作。格式为 -exec'command'{}\;
1. #搜索/etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除 2. find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \; -ok 和exec功能一样,只是每次操作都会给用户提示
逻辑运算符
+ `-a` 与 + `-o` 或 + `-not|!` 非
find、locate、whereis、which
locate命令介绍
- 文件查找命令,所属软件包mlocate
- 不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
- find默认是全部匹配,locate默认是部分匹配
updatedb命令
- 用户更新
/var/lib/mlocate/mlocate.db
- 所使用配置文件
/etc/updatedb.conf
,可以配置忽略更新的文件 - 该命令在后台cron计划任务中定期执行
whereis命令
作用:查找某个命令的二进制程序文件、帮助文档、源代码文件
选项 | 含义 |
-b | 只返回二进制文件 |
-m | 只返回帮助文档文件 |
-s | 只返回源代码文件 |
which命令
选项 | 含义 |
-b | 只返回二进制文件 |
各命令使用场景推荐
命令 | 适用场景 | 优缺点 |
find | 查找某一类文件,比如文件名部分一致 | 功能强大,速度慢 |
locate | 只能查找某个文件 | 功能单一,速度快 |
whereis | 查找程序的可执行文件,帮助文档等 | 不常用 |
which | 只能查找程序的可执行文件 | 常用于查找程序的绝对路径 |